Ring Daemon 16.0.0
|
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 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) | |
bool | isConversation (const std::string &convId) const |
void | loadMetadata () |
bool | removeConversation (const std::string &conversationId) |
Remove a conversation. | |
bool | removeConversationImpl (SyncedConversation &conv) |
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) |
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_ |
std::map< std::string, uint64_t > | refreshMessage |
std::map< std::string, std::vector< std::map< std::string, std::string > > > | replay_ |
std::mutex | replayMtx_ |
SengMsgCb | sendMsgCb_ |
std::atomic_int | syncCnt {0} |
std::map< std::string, std::map< std::string, std::string > > | syncingMetadatas_ |
std::string | username_ {} |
Definition at line 120 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 456 of file conversation_module.cpp.
References accountId_, conversationsRequests_, jami::ConversationModule::convRequests(), deviceId_, jami::emitSignal(), loadMetadata(), and username_.
|
inline |
Definition at line 336 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 239 of file conversation_module.cpp.
References convInfos_, convInfosMtx_, jami::emitSignal(), and saveConvInfos().
Definition at line 1396 of file conversation_module.cpp.
References _, jami::ConversationModule::bootstrap(), bootstrapCb(), jami::ConversationModule::cloneConversationFrom(), jami::emitSignal(), jami::ConversationModule::getConversation(), jami::ConversationModule::getConversationMembers(), and jami::kd.
void jami::ConversationModule::Impl::bootstrapCb | ( | std::string | convId | ) |
Definition at line 1257 of file conversation_module.cpp.
References jami::emitSignal(), and JAMI_DEBUG.
Referenced by bootstrap(), handlePendingConversation(), and jami::ConversationModule::startConversation().
void jami::ConversationModule::Impl::cloneConversation | ( | const std::string & | deviceId, |
const std::string & | peer, | ||
const std::shared_ptr< SyncedConversation > & | conv | ||
) |
Definition at line 494 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 482 of file conversation_module.cpp.
References jami::emitSignal(), JAMI_DEBUG, and jami::ConversationModule::startConversation().
void jami::ConversationModule::Impl::cloneConversationFrom | ( | const std::shared_ptr< SyncedConversation > | conv, |
const std::string & | deviceId, | ||
const std::string & | oldConvId = "" |
||
) |
Definition at line 1329 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 1449 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), JAMI_WARNING, jami::ConversationModule::startConversation(), and jami::toString().
Definition at line 938 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 1216 of file conversation_module.cpp.
References jami::emitSignal(), jami::fileutils::get_data_dir(), jami::ConversationModule::getConversation(), JAMI_ERROR, and jami::ConversationModule::sendMessage().
void jami::ConversationModule::Impl::fallbackClone | ( | const asio::error_code & | ec, |
const std::string & | conversationId | ||
) |
Definition at line 1381 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 550 of file conversation_module.cpp.
References jami::emitSignal(), jami::ConversationModule::getConversation(), JAMI_DEBUG, JAMI_ERROR, JAMI_LOG, JAMI_WARNING, and jami::MIME_TYPE_INVITE.
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 1276 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 258 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().
|
inline |
Definition at line 252 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 956 of file conversation_module.cpp.
References jami::emitSignal().
|
inline |
Definition at line 289 of file conversation_module.cpp.
References _, conversations_, conversationsMtx_, and jami::emitSignal().
|
noexcept |
Definition at line 901 of file conversation_module.cpp.
References jami::emitSignal().
std::optional< ConversationRequest > jami::ConversationModule::Impl::getRequest | ( | const std::string & | id | ) | const |
Definition at line 891 of file conversation_module.cpp.
References jami::emitSignal().
|
inline |
Definition at line 280 of file conversation_module.cpp.
References _, conversations_, conversationsMtx_, and jami::emitSignal().
void jami::ConversationModule::Impl::handlePendingConversation | ( | const std::string & | conversationId, |
const std::string & | deviceId | ||
) |
Handle events to receive new commits.
Definition at line 726 of file conversation_module.cpp.
References _, bootstrapCb(), jami::emitSignal(), fallbackClone(), jami::ConversationModule::getConversation(), JAMI_ERROR, JAMI_WARNING, jami::kd, jami::MAX_FALLBACK, jami::ONE_TO_ONE, and jami::ConversationModule::removeConversation().
Definition at line 232 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().
Referenced by addConversationRequest().
|
inline |
Definition at line 437 of file conversation_module.cpp.
References accountId_, jami::emitSignal(), jami::fileutils::get_data_dir(), JAMI_WARNING, jami::fileutils::loadFile(), and syncingMetadatas_.
Referenced by Impl().
Remove a conversation.
conversationId |
Definition at line 1009 of file conversation_module.cpp.
References jami::emitSignal().
bool jami::ConversationModule::Impl::removeConversationImpl | ( | SyncedConversation & | conv | ) |
Definition at line 1015 of file conversation_module.cpp.
References jami::ConversationModule::addConvInfo(), jami::emitSignal(), JAMI_ERROR, JAMI_LOG, jami::ONE_TO_ONE, and jami::ConversationModule::updateConvForContact().
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 964 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 974 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 356 of file conversation_module.cpp.
References conversationsRequests_, jami::emitSignal(), saveConvRequests(), saveMetadata(), and syncingMetadatas_.
|
inline |
Definition at line 327 of file conversation_module.cpp.
References accountId_, convInfos_, and jami::ConversationModule::saveConvInfos().
Referenced by addConvInfo().
|
inline |
Definition at line 331 of file conversation_module.cpp.
References accountId_, conversationsRequests_, and jami::ConversationModule::saveConvRequests().
Referenced by addConversationRequest(), and rmConversationRequest().
|
inline |
Definition at line 430 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 1184 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 1164 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 1067 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 1080 of file conversation_module.cpp.
References jami::BANNED, jami::emitSignal(), jami::Conversation::id(), jami::Conversation::isBootstraped(), 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 3274 of file conversation_module.cpp.
|
inline |
Definition at line 272 of file conversation_module.cpp.
References conversations_, conversationsMtx_, and jami::emitSignal().
|
inline |
Definition at line 264 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 917 of file conversation_module.cpp.
References jami::emitSignal(), jami::ConversationModule::getOneToOneConversation(), and JAMI_DEBUG.
|
inline |
Definition at line 402 of file conversation_module.cpp.
References jami::emitSignal().
Definition at line 132 of file conversation_module.cpp.
References jami::emitSignal(), getConversation(), and JAMI_WARNING.
Definition at line 143 of file conversation_module.cpp.
References jami::emitSignal(), getConversation(), and JAMI_WARNING.
std::weak_ptr<JamiAccount> jami::ConversationModule::Impl::account_ |
Definition at line 371 of file conversation_module.cpp.
const std::string jami::ConversationModule::Impl::accountId_ {} |
Definition at line 373 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 372 of file conversation_module.cpp.
std::map<std::string, std::shared_ptr<SyncedConversation>, std::less<> > jami::ConversationModule::Impl::conversations_ |
Definition at line 389 of file conversation_module.cpp.
Referenced by getConversation(), getConversation(), getConversations(), getSyncedConversations(), isConversation(), startConversation(), and startConversation().
|
mutable |
Definition at line 388 of file conversation_module.cpp.
Referenced by getConversation(), getConversation(), getConversations(), getSyncedConversations(), isConversation(), startConversation(), and startConversation().
std::map<std::string, ConversationRequest> jami::ConversationModule::Impl::conversationsRequests_ |
Definition at line 385 of file conversation_module.cpp.
Referenced by addConversationRequest(), Impl(), rmConversationRequest(), and saveConvRequests().
|
mutable |
Definition at line 384 of file conversation_module.cpp.
std::map<std::string, ConvInfo> jami::ConversationModule::Impl::convInfos_ |
Definition at line 393 of file conversation_module.cpp.
Referenced by addConvInfo(), and saveConvInfos().
|
mutable |
Definition at line 392 of file conversation_module.cpp.
Referenced by addConvInfo().
std::string jami::ConversationModule::Impl::deviceId_ {} |
Definition at line 380 of file conversation_module.cpp.
Referenced by Impl().
NeedsSyncingCb jami::ConversationModule::Impl::needsSyncingCb_ |
Definition at line 374 of file conversation_module.cpp.
std::map<std::string, std::string> jami::ConversationModule::Impl::notSyncedNotification_ |
Definition at line 400 of file conversation_module.cpp.
std::mutex jami::ConversationModule::Impl::notSyncedNotificationMtx_ |
Definition at line 399 of file conversation_module.cpp.
OneToOneRecvCb jami::ConversationModule::Impl::oneToOneRecvCb_ |
Definition at line 378 of file conversation_module.cpp.
NeedSocketCb jami::ConversationModule::Impl::onNeedSocket_ |
Definition at line 376 of file conversation_module.cpp.
NeedSocketCb jami::ConversationModule::Impl::onNeedSwarmSocket_ |
Definition at line 377 of file conversation_module.cpp.
std::map<std::string, uint64_t> jami::ConversationModule::Impl::refreshMessage |
Definition at line 407 of file conversation_module.cpp.
std::map<std::string, std::vector<std::map<std::string, std::string> > > jami::ConversationModule::Impl::replay_ |
Definition at line 406 of file conversation_module.cpp.
std::mutex jami::ConversationModule::Impl::replayMtx_ |
Definition at line 405 of file conversation_module.cpp.
SengMsgCb jami::ConversationModule::Impl::sendMsgCb_ |
Definition at line 375 of file conversation_module.cpp.
std::atomic_int jami::ConversationModule::Impl::syncCnt {0} |
Definition at line 408 of file conversation_module.cpp.
std::map<std::string, std::map<std::string, std::string> > jami::ConversationModule::Impl::syncingMetadatas_ |
Definition at line 429 of file conversation_module.cpp.
Referenced by loadMetadata(), rmConversationRequest(), and saveMetadata().
std::string jami::ConversationModule::Impl::username_ {} |
Definition at line 381 of file conversation_module.cpp.
Referenced by Impl().