|
Ring Daemon
|


Public Member Functions | |
| bool | addConversationRequest (const std::string &id, const ConversationRequest &req) |
| void | addConvInfo (const ConvInfo &info) |
| void | bootstrap (const std::string &convId) |
| void | bootstrapCb (std::string convId) |
| void | cloneConversation (const std::string &deviceId, const std::string &peer, const std::shared_ptr< SyncedConversation > &conv) |
| void | cloneConversation (const std::string &deviceId, const std::string &peer, const std::string &convId) |
| Clone a conversation (initial) from device. | |
| void | cloneConversationFrom (const ConversationRequest &request) |
| void | cloneConversationFrom (const std::shared_ptr< SyncedConversation > conv, const std::string &deviceId, const std::string &oldConvId="") |
| void | cloneConversationFrom (const std::string &conversationId, const std::string &uri, const std::string &oldConvId="") |
| void | declineOtherConversationWith (const std::string &uri) |
| void | editMessage (const std::string &conversationId, const std::string &newBody, const std::string &editedId) |
| void | fallbackClone (const asio::error_code &ec, const std::string &conversationId) |
| void | fetchNewCommits (const std::string &peer, const std::string &deviceId, const std::string &conversationId, const std::string &commitId="") |
| Pull remote device. | |
| void | fixStructures (std::shared_ptr< JamiAccount > account, const std::vector< std::tuple< std::string, std::string, std::string > > &updateContactConv, const std::set< std::string > &toRm) |
| std::shared_ptr< SyncedConversation > | getConversation (std::string_view convId) |
| std::shared_ptr< SyncedConversation > | getConversation (std::string_view convId) const |
| std::vector< std::map< std::string, std::string > > | getConversationMembers (const std::string &conversationId, bool includeBanned=false) const |
| Get members. | |
| std::vector< std::shared_ptr< Conversation > > | getConversations () const |
| std::string | getOneToOneConversation (const std::string &uri) const noexcept |
| std::optional< ConversationRequest > | getRequest (const std::string &id) const |
| std::vector< std::shared_ptr< SyncedConversation > > | getSyncedConversations () const |
| void | handlePendingConversation (const std::string &conversationId, const std::string &deviceId) |
| Handle events to receive new commits. | |
| Impl (std::shared_ptr< JamiAccount > &&account, std::shared_ptr< AccountManager > &&accountManager, NeedsSyncingCb &&needsSyncingCb, SengMsgCb &&sendMsgCb, NeedSocketCb &&onNeedSocket, NeedSocketCb &&onNeedSwarmSocket, OneToOneRecvCb &&oneToOneRecvCb) | |
| void | initPresence () |
| bool | isConversation (const std::string &convId) const |
| void | loadMetadata () |
| void | onBuddyOnline (const std::string &uri) |
| bool | removeConversation (const std::string &conversationId, bool forceRemove=false) |
| Remove a conversation. | |
| bool | removeConversationImpl (SyncedConversation &conv, bool forceRemove=false) |
| void | removeRepository (const std::string &convId, bool sync, bool force=false) |
| Remove a repository and all files. | |
| void | removeRepositoryImpl (SyncedConversation &conv, bool sync, bool force=false) |
| void | rmConversationRequest (const std::string &id) |
| void | saveConvInfos () const |
| void | saveConvRequests () const |
| void | saveMetadata () |
| void | sendMessage (const std::string &conversationId, Json::Value &&value, const std::string &replyTo="", bool announce=true, OnCommitCb &&onCommit={}, OnDoneCb &&cb={}) |
| void | sendMessage (const std::string &conversationId, std::string message, const std::string &replyTo="", const std::string &type="text/plain", bool announce=true, OnCommitCb &&onCommit={}, OnDoneCb &&cb={}) |
| void | sendMessageNotification (const std::string &conversationId, bool sync, const std::string &commitId="", const std::string &deviceId="") |
| Send a message notification to all members. | |
| void | sendMessageNotification (Conversation &conversation, bool sync, const std::string &commitId="", const std::string &deviceId="") |
| void | setConversationMembers (const std::string &convId, const std::set< std::string > &members) |
| std::shared_ptr< SyncedConversation > | startConversation (const ConvInfo &info) |
| std::shared_ptr< SyncedConversation > | startConversation (const std::string &convId) |
| bool | updateConvForContact (const std::string &uri, const std::string &oldConv, const std::string &newConv) |
| std::weak_ptr< Impl > | weak () |
| template<typename S , typename T > | |
| auto | withConv (const S &convId, T &&cb) const |
| template<typename S , typename T > | |
| auto | withConversation (const S &convId, T &&cb) |
| ~Impl () | |
Public Attributes | |
| std::weak_ptr< JamiAccount > | account_ |
| const std::string | accountId_ {} |
| std::shared_ptr< AccountManager > | accountManager_ |
| std::map< std::string, std::shared_ptr< SyncedConversation >, std::less<> > | conversations_ |
| std::mutex | conversationsMtx_ {} |
| std::map< std::string, ConversationRequest > | conversationsRequests_ |
| std::mutex | conversationsRequestsMtx_ |
| std::map< std::string, ConvInfo > | convInfos_ |
| std::mutex | convInfosMtx_ |
| std::string | deviceId_ {} |
| NeedsSyncingCb | needsSyncingCb_ |
| std::map< std::string, std::string > | notSyncedNotification_ |
| std::mutex | notSyncedNotificationMtx_ |
| OneToOneRecvCb | oneToOneRecvCb_ |
| NeedSocketCb | onNeedSocket_ |
| NeedSocketCb | onNeedSwarmSocket_ |
| uint64_t | presenceListenerToken_ {0} |
| std::map< std::string, uint64_t > | refreshMessage |
| std::mutex | refreshMtx_ |
| SengMsgCb | sendMsgCb_ |
| std::atomic_int | syncCnt {0} |
| std::map< std::string, std::map< std::string, std::string > > | syncingMetadatas_ |
| std::string | username_ {} |
Definition at line 121 of file conversation_module.cpp.
| jami::ConversationModule::Impl::Impl | ( | std::shared_ptr< JamiAccount > && | account, |
| std::shared_ptr< AccountManager > && | accountManager, | ||
| NeedsSyncingCb && | needsSyncingCb, | ||
| SengMsgCb && | sendMsgCb, | ||
| NeedSocketCb && | onNeedSocket, | ||
| NeedSocketCb && | onNeedSwarmSocket, | ||
| OneToOneRecvCb && | oneToOneRecvCb | ||
| ) |
Definition at line 474 of file conversation_module.cpp.
References accountId_, conversationsRequests_, jami::ConversationModule::convRequests(), deviceId_, jami::emitSignal(), loadMetadata(), and username_.

|
inline |
Definition at line 408 of file conversation_module.cpp.
References account_, jami::emitSignal(), and presenceListenerToken_.

|
inline |
Definition at line 329 of file conversation_module.cpp.
References accountId_, conversationsRequests_, jami::ConversationRequest::declined, declineOtherConversationWith(), jami::emitSignal(), jami::ConversationRequest::from, isConversation(), jami::ConversationRequest::isOneToOne(), JAMI_DEBUG, and saveConvRequests().

Definition at line 238 of file conversation_module.cpp.
References convInfos_, convInfosMtx_, jami::emitSignal(), and saveConvInfos().

Definition at line 1413 of file conversation_module.cpp.
References jami::ConversationModule::cloneConversationFrom(), jami::emitSignal(), and jami::ConversationModule::getConversation().

| void jami::ConversationModule::Impl::bootstrapCb | ( | std::string | convId | ) |
Definition at line 1275 of file conversation_module.cpp.
References jami::emitSignal(), and JAMI_DEBUG.

| void jami::ConversationModule::Impl::cloneConversation | ( | const std::string & | deviceId, |
| const std::string & | peer, | ||
| const std::shared_ptr< SyncedConversation > & | conv | ||
| ) |
Definition at line 512 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), JAMI_DEBUG, JAMI_LOG, JAMI_WARNING, and jami::MIME_TYPE_GIT.

| void jami::ConversationModule::Impl::cloneConversation | ( | const std::string & | deviceId, |
| const std::string & | peer, | ||
| const std::string & | convId | ||
| ) |
Clone a conversation (initial) from device.
| deviceId | |
| convId |
Definition at line 500 of file conversation_module.cpp.
References jami::emitSignal(), JAMI_DEBUG, and jami::ConversationModule::startConversation().

| void jami::ConversationModule::Impl::cloneConversationFrom | ( | const ConversationRequest & | request | ) |
Definition at line 1468 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::ConversationRequest::conversationId, jami::emitSignal(), jami::ConversationRequest::from, JAMI_WARNING, jami::ConversationRequest::mode(), jami::ConversationRequest::received, jami::ConversationModule::startConversation(), and jami::toString().

| void jami::ConversationModule::Impl::cloneConversationFrom | ( | const std::shared_ptr< SyncedConversation > | conv, |
| const std::string & | deviceId, | ||
| const std::string & | oldConvId = "" |
||
| ) |
Definition at line 1346 of file conversation_module.cpp.
References jami::emitSignal(), fallbackClone(), JAMI_WARNING, jami::MAX_FALLBACK, and jami::MIME_TYPE_GIT.

| void jami::ConversationModule::Impl::cloneConversationFrom | ( | const std::string & | conversationId, |
| const std::string & | uri, | ||
| const std::string & | oldConvId = "" |
||
| ) |
Definition at line 1495 of file conversation_module.cpp.
References jami::emitSignal(), JAMI_WARNING, jami::ConversationModule::startConversation(), and jami::toString().

Definition at line 972 of file conversation_module.cpp.
References jami::emitSignal(), and JAMI_WARNING.
Referenced by addConversationRequest().

| void jami::ConversationModule::Impl::editMessage | ( | const std::string & | conversationId, |
| const std::string & | newBody, | ||
| const std::string & | editedId | ||
| ) |
Definition at line 1234 of file conversation_module.cpp.
References jami::emitSignal(), jami::fileutils::get_data_dir(), jami::ConversationModule::getConversation(), jami::getFileId(), JAMI_ERROR, and jami::ConversationModule::sendMessage().

| void jami::ConversationModule::Impl::fallbackClone | ( | const asio::error_code & | ec, |
| const std::string & | conversationId | ||
| ) |
Definition at line 1399 of file conversation_module.cpp.
References jami::ConversationModule::cloneConversationFrom(), jami::emitSignal(), jami::ConversationModule::getConversation(), and jami::ConversationModule::getConversationMembers().
Referenced by cloneConversationFrom(), and handlePendingConversation().

| void jami::ConversationModule::Impl::fetchNewCommits | ( | const std::string & | peer, |
| const std::string & | deviceId, | ||
| const std::string & | conversationId, | ||
| const std::string & | commitId = "" |
||
| ) |
Pull remote device.
Definition at line 567 of file conversation_module.cpp.
References jami::emitSignal(), jami::ConversationModule::getConversation(), JAMI_DEBUG, JAMI_ERROR, JAMI_LOG, JAMI_WARNING, jami::MIME_TYPE_INVITE, jami::ONE_TO_ONE, and jami::ConversationModule::saveConvInfos().

| void jami::ConversationModule::Impl::fixStructures | ( | std::shared_ptr< JamiAccount > | account, |
| const std::vector< std::tuple< std::string, std::string, std::string > > & | updateContactConv, | ||
| const std::set< std::string > & | toRm | ||
| ) |
Definition at line 1294 of file conversation_module.cpp.
References libjami::Account::TrustRequest::CONVERSATIONID, jami::emitSignal(), libjami::Account::TrustRequest::FROM, JAMI_DEBUG, JAMI_ERROR, JAMI_WARNING, jami::ConversationModule::removeConversation(), jami::ConversationModule::saveConvRequests(), and jami::ConversationModule::updateConvForContact().

|
inline |
Definition at line 255 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().

|
inline |
Definition at line 249 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().
Referenced by withConv(), and withConversation().

| std::vector< std::map< std::string, std::string > > jami::ConversationModule::Impl::getConversationMembers | ( | const std::string & | conversationId, |
| bool | includeBanned = false |
||
| ) | const |
Get members.
| conversationId | |
| includeBanned |
Definition at line 989 of file conversation_module.cpp.
References jami::emitSignal().

|
inline |
Definition at line 286 of file conversation_module.cpp.
References jami::emitSignal(), and getSyncedConversations().

|
noexcept |
Definition at line 935 of file conversation_module.cpp.
References jami::emitSignal().

| std::optional< ConversationRequest > jami::ConversationModule::Impl::getRequest | ( | const std::string & | id | ) | const |
Definition at line 925 of file conversation_module.cpp.
References jami::emitSignal().

|
inline |
Definition at line 277 of file conversation_module.cpp.
References _, conversations_, conversationsMtx_, and jami::emitSignal().
Referenced by getConversations().

| void jami::ConversationModule::Impl::handlePendingConversation | ( | const std::string & | conversationId, |
| const std::string & | deviceId | ||
| ) |
Handle events to receive new commits.
Definition at line 777 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), fallbackClone(), jami::ConversationModule::getConversation(), JAMI_ERROR, JAMI_WARNING, jami::MAX_FALLBACK, jami::ONE_TO_ONE, and jami::ConversationModule::removeConversation().

|
inline |
Definition at line 460 of file conversation_module.cpp.
References account_, jami::emitSignal(), and presenceListenerToken_.

Definition at line 231 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().
Referenced by addConversationRequest().

|
inline |
Definition at line 444 of file conversation_module.cpp.
References accountId_, jami::emitSignal(), jami::fileutils::get_data_dir(), JAMI_WARNING, jami::fileutils::loadFile(), and syncingMetadatas_.
Referenced by Impl().

Definition at line 755 of file conversation_module.cpp.
References jami::emitSignal(), and jami::ConversationModule::getConversations().

| bool jami::ConversationModule::Impl::removeConversation | ( | const std::string & | conversationId, |
| bool | forceRemove = false |
||
| ) |
Remove a conversation.
| conversationId |
Definition at line 1040 of file conversation_module.cpp.
References jami::emitSignal().

| bool jami::ConversationModule::Impl::removeConversationImpl | ( | SyncedConversation & | conv, |
| bool | forceRemove = false |
||
| ) |
Definition at line 1047 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), JAMI_ERROR, JAMI_LOG, and jami::ONE_TO_ONE.

| void jami::ConversationModule::Impl::removeRepository | ( | const std::string & | convId, |
| bool | sync, | ||
| bool | force = false |
||
| ) |
Remove a repository and all files.
| convId | |
| sync | If we send an update to other account's devices |
| force | True if ignore the removing flag |
Definition at line 995 of file conversation_module.cpp.
References jami::emitSignal(), and jami::ConversationModule::getConversation().

| void jami::ConversationModule::Impl::removeRepositoryImpl | ( | SyncedConversation & | conv, |
| bool | sync, | ||
| bool | force = false |
||
| ) |
Definition at line 1005 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), jami::ConversationModule::getOneToOneConversation(), JAMI_ERR, JAMI_LOG, and jami::ONE_TO_ONE.

Definition at line 349 of file conversation_module.cpp.
References conversationsRequests_, jami::emitSignal(), saveConvRequests(), saveMetadata(), and syncingMetadatas_.

|
inline |
Definition at line 323 of file conversation_module.cpp.
References accountId_, convInfos_, and jami::ConversationModule::saveConvInfos().
Referenced by addConvInfo().

|
inline |
Definition at line 327 of file conversation_module.cpp.
References accountId_, conversationsRequests_, and jami::ConversationModule::saveConvRequests().
Referenced by addConversationRequest(), and rmConversationRequest().

|
inline |
Definition at line 436 of file conversation_module.cpp.
References accountId_, jami::emitSignal(), jami::fileutils::get_data_dir(), and syncingMetadatas_.
Referenced by rmConversationRequest().

| void jami::ConversationModule::Impl::sendMessage | ( | const std::string & | conversationId, |
| Json::Value && | value, | ||
| const std::string & | replyTo = "", |
||
| bool | announce = true, |
||
| OnCommitCb && | onCommit = {}, |
||
| OnDoneCb && | cb = {} |
||
| ) |
Definition at line 1203 of file conversation_module.cpp.
References jami::emitSignal(), jami::ConversationModule::getConversation(), and JAMI_ERR.

| void jami::ConversationModule::Impl::sendMessage | ( | const std::string & | conversationId, |
| std::string | message, | ||
| const std::string & | replyTo = "", |
||
| const std::string & | type = "text/plain", |
||
| bool | announce = true, |
||
| OnCommitCb && | onCommit = {}, |
||
| OnDoneCb && | cb = {} |
||
| ) |
Definition at line 1188 of file conversation_module.cpp.
References jami::emitSignal(), and jami::ConversationModule::sendMessage().

| void jami::ConversationModule::Impl::sendMessageNotification | ( | const std::string & | conversationId, |
| bool | sync, | ||
| const std::string & | commitId = "", |
||
| const std::string & | deviceId = "" |
||
| ) |
Send a message notification to all members.
| conversation | |
| commit | |
| sync | If we send an update to other account's devices |
| deviceId | If we need to filter a specific device |
Definition at line 1098 of file conversation_module.cpp.
References jami::emitSignal(), and jami::ConversationModule::getConversation().

| void jami::ConversationModule::Impl::sendMessageNotification | ( | Conversation & | conversation, |
| bool | sync, | ||
| const std::string & | commitId = "", |
||
| const std::string & | deviceId = "" |
||
| ) |
Definition at line 1111 of file conversation_module.cpp.
References jami::BANNED, jami::emitSignal(), jami::Conversation::id(), jami::Conversation::isBootstrapped(), JAMI_DEBUG, jami::Conversation::lastCommitId(), jami::Conversation::memberUris(), jami::MIME_TYPE_GIT, jami::Conversation::peersToSyncWith(), jami::json::toString(), and jami::Conversation::uriFromDevice().

| void jami::ConversationModule::Impl::setConversationMembers | ( | const std::string & | convId, |
| const std::set< std::string > & | members | ||
| ) |
Definition at line 3286 of file conversation_module.cpp.
|
inline |
Definition at line 269 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().

|
inline |
Definition at line 261 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().

| bool jami::ConversationModule::Impl::updateConvForContact | ( | const std::string & | uri, |
| const std::string & | oldConv, | ||
| const std::string & | newConv | ||
| ) |
Definition at line 951 of file conversation_module.cpp.
References jami::emitSignal(), jami::ConversationModule::getOneToOneConversation(), and JAMI_DEBUG.

|
inline |
Definition at line 395 of file conversation_module.cpp.
References jami::emitSignal().

Definition at line 133 of file conversation_module.cpp.
References jami::emitSignal(), getConversation(), and JAMI_WARNING.

Definition at line 144 of file conversation_module.cpp.
References jami::emitSignal(), getConversation(), and JAMI_WARNING.

| std::weak_ptr<JamiAccount> jami::ConversationModule::Impl::account_ |
Definition at line 364 of file conversation_module.cpp.
Referenced by initPresence(), and ~Impl().
| const std::string jami::ConversationModule::Impl::accountId_ {} |
Definition at line 366 of file conversation_module.cpp.
Referenced by addConversationRequest(), Impl(), loadMetadata(), saveConvInfos(), saveConvRequests(), and saveMetadata().
| std::shared_ptr<AccountManager> jami::ConversationModule::Impl::accountManager_ |
Definition at line 365 of file conversation_module.cpp.
| std::map<std::string, std::shared_ptr<SyncedConversation>, std::less<> > jami::ConversationModule::Impl::conversations_ |
Definition at line 382 of file conversation_module.cpp.
Referenced by getConversation(), getConversation(), getSyncedConversations(), isConversation(), startConversation(), and startConversation().
|
mutable |
Definition at line 381 of file conversation_module.cpp.
Referenced by getConversation(), getConversation(), getSyncedConversations(), isConversation(), startConversation(), and startConversation().
| std::map<std::string, ConversationRequest> jami::ConversationModule::Impl::conversationsRequests_ |
Definition at line 378 of file conversation_module.cpp.
Referenced by addConversationRequest(), Impl(), rmConversationRequest(), and saveConvRequests().
|
mutable |
Definition at line 377 of file conversation_module.cpp.
| std::map<std::string, ConvInfo> jami::ConversationModule::Impl::convInfos_ |
Definition at line 386 of file conversation_module.cpp.
Referenced by addConvInfo(), and saveConvInfos().
|
mutable |
Definition at line 385 of file conversation_module.cpp.
Referenced by addConvInfo().
| std::string jami::ConversationModule::Impl::deviceId_ {} |
Definition at line 373 of file conversation_module.cpp.
Referenced by Impl().
| NeedsSyncingCb jami::ConversationModule::Impl::needsSyncingCb_ |
Definition at line 367 of file conversation_module.cpp.
| std::map<std::string, std::string> jami::ConversationModule::Impl::notSyncedNotification_ |
Definition at line 393 of file conversation_module.cpp.
| std::mutex jami::ConversationModule::Impl::notSyncedNotificationMtx_ |
Definition at line 392 of file conversation_module.cpp.
| OneToOneRecvCb jami::ConversationModule::Impl::oneToOneRecvCb_ |
Definition at line 371 of file conversation_module.cpp.
| NeedSocketCb jami::ConversationModule::Impl::onNeedSocket_ |
Definition at line 369 of file conversation_module.cpp.
| NeedSocketCb jami::ConversationModule::Impl::onNeedSwarmSocket_ |
Definition at line 370 of file conversation_module.cpp.
| uint64_t jami::ConversationModule::Impl::presenceListenerToken_ {0} |
Definition at line 405 of file conversation_module.cpp.
Referenced by initPresence(), and ~Impl().
| std::map<std::string, uint64_t> jami::ConversationModule::Impl::refreshMessage |
Definition at line 398 of file conversation_module.cpp.
| std::mutex jami::ConversationModule::Impl::refreshMtx_ |
Definition at line 397 of file conversation_module.cpp.
| SengMsgCb jami::ConversationModule::Impl::sendMsgCb_ |
Definition at line 368 of file conversation_module.cpp.
| std::atomic_int jami::ConversationModule::Impl::syncCnt {0} |
Definition at line 399 of file conversation_module.cpp.
| std::map<std::string, std::map<std::string, std::string> > jami::ConversationModule::Impl::syncingMetadatas_ |
Definition at line 435 of file conversation_module.cpp.
Referenced by loadMetadata(), rmConversationRequest(), and saveMetadata().
| std::string jami::ConversationModule::Impl::username_ {} |
Definition at line 374 of file conversation_module.cpp.
Referenced by Impl().