Ring Daemon 16.0.0
|
Public Attributes | |
std::weak_ptr< JamiAccount > | account_ |
const std::string | accountId_ |
std::filesystem::path | conversationDataPath_ {} |
const std::string | deviceId_ |
std::map< std::string, std::string > | deviceToUri_ |
std::mutex | deviceToUriMtx_ |
const std::string | id_ |
std::vector< ConversationMember > | members_ {} |
std::filesystem::path | membersCache_ {} |
std::mutex | membersMtx_ {} |
std::optional< ConversationMode > | mode_ {} |
OnMembersChanged | onMembersChanged_ {} |
std::mutex | opMtx_ |
MemberRole | updateProfilePermLvl_ {MemberRole::ADMIN} |
const std::string | userId_ |
Definition at line 61 of file conversationrepository.cpp.
|
inline |
Definition at line 64 of file conversationrepository.cpp.
References accountId_, checkLocks(), conversationDataPath_, jami::fileutils::get_data_dir(), id_, initMembers(), loadMembers(), members_, and membersCache_.
Definition at line 988 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
Referenced by addUserDevice().
void jami::ConversationRepository::Impl::addUserDevice | ( | ) |
Definition at line 3099 of file conversationrepository.cpp.
References account_, add(), deviceId_, jami::emitSignal(), JAMI_ERROR, JAMI_WARNING, and repository().
std::vector< ConversationCommit > jami::ConversationRepository::Impl::behind | ( | const std::string & | from | ) | const |
Definition at line 2131 of file conversationrepository.cpp.
References jami::emitSignal(), JAMI_ERROR, and jami::ConversationRepository::log().
bool jami::ConversationRepository::Impl::checkEdit | ( | const std::string & | userDevice, |
const ConversationCommit & | commit | ||
) | const |
Definition at line 1071 of file conversationrepository.cpp.
References jami::ConversationRepository::convCommitToMap(), jami::emitSignal(), jami::ConversationRepository::getCommit(), jami::ConversationCommit::id, JAMI_ERROR, and jami::ConversationRepository::uriFromDevice().
bool jami::ConversationRepository::Impl::checkInitialCommit | ( | const std::string & | userDevice, |
const std::string & | commitId, | ||
const std::string & | commitMsg | ||
) | const |
Definition at line 1713 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, JAMI_WARNING, jami::ConversationRepository::mode(), jami::ONE_TO_ONE, jami::json::parse(), and jami::ConversationRepository::uriFromDevice().
|
inline |
Definition at line 81 of file conversationrepository.cpp.
References accountId_, jami::emitSignal(), id_, JAMI_ERROR, JAMI_WARNING, and repository().
Referenced by Impl().
bool jami::ConversationRepository::Impl::checkValidAdd | ( | const std::string & | userDevice, |
const std::string & | uriMember, | ||
const std::string & | commitid, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1232 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), jami::ConversationRepository::getInitialMembers(), JAMI_ERROR, jami::ConversationRepository::mode(), jami::ONE_TO_ONE, and jami::ConversationRepository::uriFromDevice().
bool jami::ConversationRepository::Impl::checkValidJoins | ( | const std::string & | userDevice, |
const std::string & | uriMember, | ||
const std::string & | commitid, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1316 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), and JAMI_ERROR.
bool jami::ConversationRepository::Impl::checkValidProfileUpdate | ( | const std::string & | userDevice, |
const std::string & | commitid, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1575 of file conversationrepository.cpp.
References jami::ADMIN, jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, jami::MEMBER, and jami::ConversationRepository::uriFromDevice().
bool jami::ConversationRepository::Impl::checkValidRemove | ( | const std::string & | userDevice, |
const std::string & | uriMember, | ||
const std::string & | commitid, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1391 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, and std::regex_match().
bool jami::ConversationRepository::Impl::checkValidUserDiff | ( | const std::string & | userDevice, |
const std::string & | commitId, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1009 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, and jami::ConversationRepository::uriFromDevice().
bool jami::ConversationRepository::Impl::checkValidVoteResolution | ( | const std::string & | userDevice, |
const std::string & | uriMember, | ||
const std::string & | commitId, | ||
const std::string & | parentId, | ||
const std::string & | voteType | ||
) | const |
Definition at line 1451 of file conversationrepository.cpp.
References jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, JAMI_WARNING, std::regex_match(), and jami::ConversationRepository::uriFromDevice().
bool jami::ConversationRepository::Impl::checkVote | ( | const std::string & | userDevice, |
const std::string & | commitId, | ||
const std::string & | parentId | ||
) | const |
Definition at line 1110 of file conversationrepository.cpp.
References jami::as_view(), jami::ConversationRepository::changedFiles(), jami::ConversationRepository::diffStats(), jami::emitSignal(), JAMI_ERROR, JAMI_WARNING, std::regex_match(), and jami::ConversationRepository::uriFromDevice().
std::string jami::ConversationRepository::Impl::commit | ( | const std::string & | msg, |
bool | verifyDevice = true |
||
) |
Definition at line 1875 of file conversationrepository.cpp.
References jami::ECOMMIT, jami::emitSignal(), jami::base64::encode(), JAMI_ERROR, and JAMI_LOG.
std::string jami::ConversationRepository::Impl::commitMessage | ( | const std::string & | msg, |
bool | verifyDevice = true |
||
) |
Definition at line 3157 of file conversationrepository.cpp.
References jami::emitSignal().
std::optional< std::map< std::string, std::string > > jami::ConversationRepository::Impl::convCommitToMap | ( | const ConversationCommit & | commit | ) | const |
Definition at line 2498 of file conversationrepository.cpp.
References jami::ConversationCommit::author, jami::ConversationCommit::commit_msg, jami::GitAuthor::email, jami::emitSignal(), jami::fileutils::getFileExtension(), jami::ConversationCommit::id, jami::ConversationRepository::id(), JAMI_ERROR, jami::ConversationCommit::linearized_parent, jami::ConversationCommit::parents, jami::json::parse(), jami::ConversationCommit::timestamp, and jami::ConversationRepository::uriFromDevice().
std::string jami::ConversationRepository::Impl::createMergeCommit | ( | git_index * | index, |
const std::string & | wanted_ref | ||
) |
Definition at line 763 of file conversationrepository.cpp.
References jami::ECOMMIT, jami::emitSignal(), jami::base64::encode(), JAMI_ERROR, and JAMI_LOG.
|
inline |
Definition at line 268 of file conversationrepository.cpp.
References account_, jami::emitSignal(), jami::fileutils::loadFile(), and repository().
GitDiff jami::ConversationRepository::Impl::diff | ( | git_repository * | repo, |
const std::string & | idNew, | ||
const std::string & | idOld | ||
) | const |
Definition at line 2059 of file conversationrepository.cpp.
References jami::emitSignal(), JAMI_ERROR, and JAMI_WARNING.
Definition at line 2555 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
std::string jami::ConversationRepository::Impl::diffStats | ( | const std::string & | newId, |
const std::string & | oldId | ||
) | const |
Definition at line 2049 of file conversationrepository.cpp.
References jami::ConversationRepository::diffStats(), and jami::emitSignal().
GitObject jami::ConversationRepository::Impl::fileAtTree | ( | const std::string & | path, |
const GitTree & | tree | ||
) | const |
Definition at line 2315 of file conversationrepository.cpp.
References jami::emitSignal().
Referenced by uriFromDeviceAtCommit().
void jami::ConversationRepository::Impl::forEachCommit | ( | PreConditionCb && | preCondition, |
std::function< void(ConversationCommit &&)> && | emplaceCb, | ||
PostConditionCb && | postCondition, | ||
const std::string & | from = "" , |
||
bool | logIfNotFound = true |
||
) | const |
Definition at line 2168 of file conversationrepository.cpp.
References jami::ConversationCommit::author, jami::Break, jami::ConversationCommit::commit_msg, jami::base64::decode(), jami::GitAuthor::email, jami::emitSignal(), jami::ConversationCommit::id, jami::ConversationRepository::id(), JAMI_DEBUG, JAMI_ERROR, JAMI_WARNING, jami::GitAuthor::name, jami::ConversationCommit::parents, jami::ConversationCommit::signature, jami::ConversationCommit::signed_content, jami::Skip, and jami::ConversationCommit::timestamp.
|
inline |
Definition at line 316 of file conversationrepository.cpp.
References jami::emitSignal(), jami::LogOptions::from, and log().
|
inline |
Definition at line 167 of file conversationrepository.cpp.
References account_, deviceId_, and jami::regex_display_name().
Referenced by signature().
std::vector< std::string > jami::ConversationRepository::Impl::getInitialMembers | ( | ) | const |
Definition at line 2357 of file conversationrepository.cpp.
References jami::emitSignal(), jami::LogOptions::from, jami::ConversationRepository::log(), jami::ConversationRepository::mode(), jami::ONE_TO_ONE, and jami::json::parse().
void jami::ConversationRepository::Impl::initMembers | ( | ) |
Definition at line 2455 of file conversationrepository.cpp.
References jami::ADMIN, jami::BANNED, jami::emitSignal(), jami::ConversationRepository::getInitialMembers(), jami::INVITED, jami::LEFT, jami::MEMBER, jami::ConversationRepository::mode(), and jami::ONE_TO_ONE.
Referenced by Impl().
bool jami::ConversationRepository::Impl::isValidUserAtCommit | ( | const std::string & | userDevice, |
const std::string & | commitId | ||
) | const |
Definition at line 1636 of file conversationrepository.cpp.
References jami::as_view(), jami::emitSignal(), JAMI_ERROR, and JAMI_WARNING.
|
inline |
Definition at line 123 of file conversationrepository.cpp.
References jami::emitSignal(), jami::fileutils::loadFile(), members_, membersCache_, and membersMtx_.
Referenced by Impl().
std::vector< ConversationCommit > jami::ConversationRepository::Impl::log | ( | const LogOptions & | options | ) | const |
Definition at line 2264 of file conversationrepository.cpp.
References jami::Break, jami::emitSignal(), jami::Ok, jami::Skip, and jami::ConversationRepository::uriFromDevice().
Referenced by getCommit().
GitObject jami::ConversationRepository::Impl::memberCertificate | ( | std::string_view | memberUri, |
const GitTree & | tree | ||
) | const |
Definition at line 2329 of file conversationrepository.cpp.
References jami::emitSignal().
|
inline |
Definition at line 258 of file conversationrepository.cpp.
References jami::emitSignal(), members_, and membersMtx_.
|
inline |
Definition at line 331 of file conversationrepository.cpp.
References jami::emitSignal(), members_, and membersMtx_.
Referenced by saveMembers().
bool jami::ConversationRepository::Impl::mergeFastforward | ( | const git_oid * | target_oid, |
int | is_unborn | ||
) |
Definition at line 919 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
ConversationMode jami::ConversationRepository::Impl::mode | ( | ) | const |
Definition at line 1989 of file conversationrepository.cpp.
References jami::ADMIN_INVITES_ONLY, jami::EINVALIDMODE, jami::emitSignal(), jami::LogOptions::from, jami::INVITES_ONLY, jami::ConversationRepository::log(), jami::ConversationRepository::mode(), jami::ONE_TO_ONE, jami::json::parse(), and jami::PUBLIC.
|
inline |
Definition at line 154 of file conversationrepository.cpp.
References accountId_, jami::emitSignal(), jami::fileutils::get_data_dir(), id_, and JAMI_ERROR.
Referenced by addUserDevice(), checkLocks(), devices(), uriFromDevice(), and uriFromDeviceAtCommit().
void jami::ConversationRepository::Impl::resetHard | ( | ) |
Definition at line 3129 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
bool jami::ConversationRepository::Impl::resolveBan | ( | const std::string_view | type, |
const std::string & | uri | ||
) |
Definition at line 3603 of file conversationrepository.cpp.
References jami::BANNED, jami::emitSignal(), JAMI_ERROR, and jami::fileutils::loadFile().
bool jami::ConversationRepository::Impl::resolveConflicts | ( | git_index * | index, |
const std::string & | other_id | ||
) |
Definition at line 2388 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
bool jami::ConversationRepository::Impl::resolveUnban | ( | const std::string_view | type, |
const std::string & | uri | ||
) |
Definition at line 3659 of file conversationrepository.cpp.
References jami::ADMIN, jami::emitSignal(), jami::INVITED, JAMI_ERROR, and jami::MEMBER.
|
inline |
Definition at line 136 of file conversationrepository.cpp.
References jami::emitSignal(), members_, membersCache_, memberUris(), and onMembersChanged_.
GitSignature jami::ConversationRepository::Impl::signature | ( | ) |
Definition at line 741 of file conversationrepository.cpp.
References accountId_, deviceId_, jami::emitSignal(), getDisplayName(), id_, and JAMI_ERROR.
GitTree jami::ConversationRepository::Impl::treeAtCommit | ( | git_repository * | repo, |
const std::string & | commitId | ||
) | const |
Definition at line 2339 of file conversationrepository.cpp.
References jami::emitSignal(), JAMI_ERROR, and JAMI_WARNING.
Referenced by uriFromDeviceAtCommit().
|
inline |
Retrieve the user related to a device using the account's certificate store.
Definition at line 357 of file conversationrepository.cpp.
References account_, deviceToUri_, deviceToUriMtx_, jami::emitSignal(), JAMI_WARNING, jami::fileutils::loadFile(), repository(), and uriFromDeviceAtCommit().
|
inline |
Retrieve the user related to a device using certificate directly from the repository at a specific commit.
Definition at line 409 of file conversationrepository.cpp.
References jami::as_view(), jami::emitSignal(), fileAtTree(), JAMI_ERROR, repository(), and treeAtCommit().
Referenced by uriFromDevice().
bool jami::ConversationRepository::Impl::validateDevice | ( | ) |
Definition at line 1787 of file conversationrepository.cpp.
References jami::emitSignal(), JAMI_ERROR, JAMI_WARNING, and jami::fileutils::loadFile().
bool jami::ConversationRepository::Impl::validCommits | ( | const std::vector< ConversationCommit > & | commits | ) | const |
Definition at line 2700 of file conversationrepository.cpp.
References jami::emitSignal(), jami::EVALIDFETCH, JAMI_DEBUG, JAMI_ERROR, JAMI_WARNING, and jami::json::parse().
|
inline |
Verify that a certificate modification is correct.
certPath | Where the certificate is saved (relative path) |
userUri | Account we want for this certificate |
oldCert | Previous certificate. getId() should return the same id as the new certificate. |
Definition at line 433 of file conversationrepository.cpp.
References jami::emitSignal(), and JAMI_ERROR.
std::weak_ptr<JamiAccount> jami::ConversationRepository::Impl::account_ |
Definition at line 247 of file conversationrepository.cpp.
Referenced by addUserDevice(), devices(), getDisplayName(), and uriFromDevice().
const std::string jami::ConversationRepository::Impl::accountId_ |
Definition at line 249 of file conversationrepository.cpp.
Referenced by checkLocks(), Impl(), repository(), and signature().
std::filesystem::path jami::ConversationRepository::Impl::conversationDataPath_ {} |
Definition at line 265 of file conversationrepository.cpp.
Referenced by Impl().
const std::string jami::ConversationRepository::Impl::deviceId_ |
Definition at line 251 of file conversationrepository.cpp.
Referenced by addUserDevice(), getDisplayName(), and signature().
|
mutable |
Definition at line 402 of file conversationrepository.cpp.
Referenced by uriFromDevice().
|
mutable |
Definition at line 401 of file conversationrepository.cpp.
Referenced by uriFromDevice().
const std::string jami::ConversationRepository::Impl::id_ |
Definition at line 248 of file conversationrepository.cpp.
Referenced by checkLocks(), Impl(), repository(), and signature().
std::vector<ConversationMember> jami::ConversationRepository::Impl::members_ {} |
Definition at line 256 of file conversationrepository.cpp.
Referenced by Impl(), loadMembers(), members(), memberUris(), and saveMembers().
std::filesystem::path jami::ConversationRepository::Impl::membersCache_ {} |
Definition at line 266 of file conversationrepository.cpp.
Referenced by Impl(), loadMembers(), and saveMembers().
|
mutable |
Definition at line 255 of file conversationrepository.cpp.
Referenced by loadMembers(), members(), and memberUris().
|
mutable |
Definition at line 252 of file conversationrepository.cpp.
OnMembersChanged jami::ConversationRepository::Impl::onMembersChanged_ {} |
Definition at line 150 of file conversationrepository.cpp.
Referenced by saveMembers().
std::mutex jami::ConversationRepository::Impl::opMtx_ |
Definition at line 484 of file conversationrepository.cpp.
MemberRole jami::ConversationRepository::Impl::updateProfilePermLvl_ {MemberRole::ADMIN} |
Definition at line 351 of file conversationrepository.cpp.
const std::string jami::ConversationRepository::Impl::userId_ |
Definition at line 250 of file conversationrepository.cpp.