Changeset View
Changeset View
Standalone View
Standalone View
native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp
Show First 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | return createPromiseAsJSIValue( | ||||
std::vector<Thread> threadsVector; | std::vector<Thread> threadsVector; | ||||
std::vector<std::pair<Message, std::vector<Media>>> messagesVector; | std::vector<std::pair<Message, std::vector<Media>>> messagesVector; | ||||
std::vector<MessageStoreThread> messageStoreThreadsVector; | std::vector<MessageStoreThread> messageStoreThreadsVector; | ||||
std::vector<Report> reportStoreVector; | std::vector<Report> reportStoreVector; | ||||
std::vector<UserInfo> userStoreVector; | std::vector<UserInfo> userStoreVector; | ||||
std::vector<KeyserverInfo> keyserverStoreVector; | std::vector<KeyserverInfo> keyserverStoreVector; | ||||
std::vector<CommunityInfo> communityStoreVector; | std::vector<CommunityInfo> communityStoreVector; | ||||
std::vector<IntegrityThreadHash> integrityStoreVector; | std::vector<IntegrityThreadHash> integrityStoreVector; | ||||
std::vector<SyncedMetadataEntry> syncedMetadataStoreVector; | |||||
try { | try { | ||||
draftsVector = DatabaseManager::getQueryExecutor().getAllDrafts(); | draftsVector = DatabaseManager::getQueryExecutor().getAllDrafts(); | ||||
messagesVector = | messagesVector = | ||||
DatabaseManager::getQueryExecutor().getAllMessages(); | DatabaseManager::getQueryExecutor().getAllMessages(); | ||||
threadsVector = DatabaseManager::getQueryExecutor().getAllThreads(); | threadsVector = DatabaseManager::getQueryExecutor().getAllThreads(); | ||||
messageStoreThreadsVector = | messageStoreThreadsVector = | ||||
DatabaseManager::getQueryExecutor().getAllMessageStoreThreads(); | DatabaseManager::getQueryExecutor().getAllMessageStoreThreads(); | ||||
reportStoreVector = | reportStoreVector = | ||||
DatabaseManager::getQueryExecutor().getAllReports(); | DatabaseManager::getQueryExecutor().getAllReports(); | ||||
userStoreVector = DatabaseManager::getQueryExecutor().getAllUsers(); | userStoreVector = DatabaseManager::getQueryExecutor().getAllUsers(); | ||||
keyserverStoreVector = | keyserverStoreVector = | ||||
DatabaseManager::getQueryExecutor().getAllKeyservers(); | DatabaseManager::getQueryExecutor().getAllKeyservers(); | ||||
communityStoreVector = | communityStoreVector = | ||||
DatabaseManager::getQueryExecutor().getAllCommunities(); | DatabaseManager::getQueryExecutor().getAllCommunities(); | ||||
integrityStoreVector = DatabaseManager::getQueryExecutor() | integrityStoreVector = DatabaseManager::getQueryExecutor() | ||||
.getAllIntegrityThreadHashes(); | .getAllIntegrityThreadHashes(); | ||||
syncedMetadataStoreVector = | |||||
DatabaseManager::getQueryExecutor().getAllSyncedMetadata(); | |||||
} catch (std::system_error &e) { | } catch (std::system_error &e) { | ||||
error = e.what(); | error = e.what(); | ||||
} | } | ||||
auto draftsVectorPtr = | auto draftsVectorPtr = | ||||
std::make_shared<std::vector<Draft>>(std::move(draftsVector)); | std::make_shared<std::vector<Draft>>(std::move(draftsVector)); | ||||
auto messagesVectorPtr = std::make_shared< | auto messagesVectorPtr = std::make_shared< | ||||
std::vector<std::pair<Message, std::vector<Media>>>>( | std::vector<std::pair<Message, std::vector<Media>>>>( | ||||
std::move(messagesVector)); | std::move(messagesVector)); | ||||
Show All 10 Lines | return createPromiseAsJSIValue( | ||||
std::make_shared<std::vector<KeyserverInfo>>( | std::make_shared<std::vector<KeyserverInfo>>( | ||||
std::move(keyserverStoreVector)); | std::move(keyserverStoreVector)); | ||||
auto communityStoreVectorPtr = | auto communityStoreVectorPtr = | ||||
std::make_shared<std::vector<CommunityInfo>>( | std::make_shared<std::vector<CommunityInfo>>( | ||||
std::move(communityStoreVector)); | std::move(communityStoreVector)); | ||||
auto integrityStoreVectorPtr = | auto integrityStoreVectorPtr = | ||||
std::make_shared<std::vector<IntegrityThreadHash>>( | std::make_shared<std::vector<IntegrityThreadHash>>( | ||||
std::move(integrityStoreVector)); | std::move(integrityStoreVector)); | ||||
auto syncedMetadataStoreVectorPtr = | |||||
std::make_shared<std::vector<SyncedMetadataEntry>>( | |||||
std::move(syncedMetadataStoreVector)); | |||||
this->jsInvoker_->invokeAsync([&innerRt, | this->jsInvoker_->invokeAsync([&innerRt, | ||||
draftsVectorPtr, | draftsVectorPtr, | ||||
messagesVectorPtr, | messagesVectorPtr, | ||||
threadsVectorPtr, | threadsVectorPtr, | ||||
messageStoreThreadsVectorPtr, | messageStoreThreadsVectorPtr, | ||||
reportStoreVectorPtr, | reportStoreVectorPtr, | ||||
userStoreVectorPtr, | userStoreVectorPtr, | ||||
keyserveStoreVectorPtr, | keyserveStoreVectorPtr, | ||||
communityStoreVectorPtr, | communityStoreVectorPtr, | ||||
integrityStoreVectorPtr, | integrityStoreVectorPtr, | ||||
syncedMetadataStoreVectorPtr, | |||||
error, | error, | ||||
promise, | promise, | ||||
draftStore = this->draftStore, | draftStore = this->draftStore, | ||||
threadStore = this->threadStore, | threadStore = this->threadStore, | ||||
messageStore = this->messageStore, | messageStore = this->messageStore, | ||||
reportStore = this->reportStore, | reportStore = this->reportStore, | ||||
userStore = this->userStore, | userStore = this->userStore, | ||||
keyserverStore = this->keyserverStore, | keyserverStore = this->keyserverStore, | ||||
communityStore = this->communityStore, | communityStore = this->communityStore, | ||||
integrityStore = | integrityStore = this->integrityStore, | ||||
this->integrityStore]() { | syncedMetadataStore = | ||||
this->syncedMetadataStore]() { | |||||
if (error.size()) { | if (error.size()) { | ||||
promise->reject(error); | promise->reject(error); | ||||
return; | return; | ||||
} | } | ||||
jsi::Array jsiDrafts = | jsi::Array jsiDrafts = | ||||
draftStore.parseDBDataStore(innerRt, draftsVectorPtr); | draftStore.parseDBDataStore(innerRt, draftsVectorPtr); | ||||
jsi::Array jsiMessages = | jsi::Array jsiMessages = | ||||
messageStore.parseDBDataStore(innerRt, messagesVectorPtr); | messageStore.parseDBDataStore(innerRt, messagesVectorPtr); | ||||
jsi::Array jsiThreads = | jsi::Array jsiThreads = | ||||
threadStore.parseDBDataStore(innerRt, threadsVectorPtr); | threadStore.parseDBDataStore(innerRt, threadsVectorPtr); | ||||
jsi::Array jsiMessageStoreThreads = | jsi::Array jsiMessageStoreThreads = | ||||
messageStore.parseDBMessageStoreThreads( | messageStore.parseDBMessageStoreThreads( | ||||
innerRt, messageStoreThreadsVectorPtr); | innerRt, messageStoreThreadsVectorPtr); | ||||
jsi::Array jsiReportStore = | jsi::Array jsiReportStore = | ||||
reportStore.parseDBDataStore(innerRt, reportStoreVectorPtr); | reportStore.parseDBDataStore(innerRt, reportStoreVectorPtr); | ||||
jsi::Array jsiUserStore = | jsi::Array jsiUserStore = | ||||
userStore.parseDBDataStore(innerRt, userStoreVectorPtr); | userStore.parseDBDataStore(innerRt, userStoreVectorPtr); | ||||
jsi::Array jsiKeyserverStore = keyserverStore.parseDBDataStore( | jsi::Array jsiKeyserverStore = keyserverStore.parseDBDataStore( | ||||
innerRt, keyserveStoreVectorPtr); | innerRt, keyserveStoreVectorPtr); | ||||
jsi::Array jsiCommunityStore = communityStore.parseDBDataStore( | jsi::Array jsiCommunityStore = communityStore.parseDBDataStore( | ||||
innerRt, communityStoreVectorPtr); | innerRt, communityStoreVectorPtr); | ||||
jsi::Array jsiIntegrityStore = integrityStore.parseDBDataStore( | jsi::Array jsiIntegrityStore = integrityStore.parseDBDataStore( | ||||
innerRt, integrityStoreVectorPtr); | innerRt, integrityStoreVectorPtr); | ||||
jsi::Array jsiSyncedMetadataStore = | |||||
syncedMetadataStore.parseDBDataStore( | |||||
innerRt, syncedMetadataStoreVectorPtr); | |||||
auto jsiClientDBStore = jsi::Object(innerRt); | auto jsiClientDBStore = jsi::Object(innerRt); | ||||
jsiClientDBStore.setProperty(innerRt, "messages", jsiMessages); | jsiClientDBStore.setProperty(innerRt, "messages", jsiMessages); | ||||
jsiClientDBStore.setProperty(innerRt, "threads", jsiThreads); | jsiClientDBStore.setProperty(innerRt, "threads", jsiThreads); | ||||
jsiClientDBStore.setProperty(innerRt, "drafts", jsiDrafts); | jsiClientDBStore.setProperty(innerRt, "drafts", jsiDrafts); | ||||
jsiClientDBStore.setProperty( | jsiClientDBStore.setProperty( | ||||
innerRt, "messageStoreThreads", jsiMessageStoreThreads); | innerRt, "messageStoreThreads", jsiMessageStoreThreads); | ||||
jsiClientDBStore.setProperty(innerRt, "reports", jsiReportStore); | jsiClientDBStore.setProperty(innerRt, "reports", jsiReportStore); | ||||
jsiClientDBStore.setProperty(innerRt, "users", jsiUserStore); | jsiClientDBStore.setProperty(innerRt, "users", jsiUserStore); | ||||
jsiClientDBStore.setProperty( | jsiClientDBStore.setProperty( | ||||
innerRt, "keyservers", jsiKeyserverStore); | innerRt, "keyservers", jsiKeyserverStore); | ||||
jsiClientDBStore.setProperty( | jsiClientDBStore.setProperty( | ||||
innerRt, "communities", jsiCommunityStore); | innerRt, "communities", jsiCommunityStore); | ||||
jsiClientDBStore.setProperty( | jsiClientDBStore.setProperty( | ||||
innerRt, "integrityThreadHashes", jsiIntegrityStore); | innerRt, "integrityThreadHashes", jsiIntegrityStore); | ||||
jsiClientDBStore.setProperty( | |||||
innerRt, "syncedMetadata", jsiSyncedMetadataStore); | |||||
promise->resolve(std::move(jsiClientDBStore)); | promise->resolve(std::move(jsiClientDBStore)); | ||||
}); | }); | ||||
}; | }; | ||||
GlobalDBSingleton::instance.scheduleOrRunCancellable( | GlobalDBSingleton::instance.scheduleOrRunCancellable( | ||||
job, promise, this->jsInvoker_); | job, promise, this->jsInvoker_); | ||||
}); | }); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 1,568 Lines • Show Last 20 Lines |