void HubInfo::on(ClientListener::UserRemoved, const Client*, const OnlineUserPtr& aUser) noexcept { if (!aUser->isHidden()) { view.onItemRemoved(aUser); } maybeSend("hub_user_disconnected", [&] { return Serializer::serializeItem(aUser, onlineUserPropertyHandler); }); }
void ViewFileApi::on(ViewFileManagerListener::FileClosed, const ViewFilePtr& aFile) noexcept { maybeSend("view_file_removed", [&] { return json({ { "id", aFile->getTTH().toBase32() } }); }); }
void SessionApi::on(WebUserManagerListener::SessionCreated, const SessionPtr& aSession) noexcept { maybeSend("session_created", [&] { return json({ { "session", serializeSession(aSession) }, }); }); }
void HubInfo::onUserUpdated(const OnlineUserPtr& aUser, const PropertyIdSet& aUpdatedProperties) noexcept { if (!aUser->isHidden()) { view.onItemUpdated(aUser, aUpdatedProperties); } maybeSend("hub_user_updated", [&] { return Serializer::serializeItem(aUser, onlineUserPropertyHandler); }); }
void SessionApi::on(WebUserManagerListener::SessionRemoved, const SessionPtr& aSession, bool aTimedOut) noexcept { maybeSend("session_removed", [&] { return json({ { "session", serializeSession(aSession) }, { "timed_out", aTimedOut }, }); }); }
void UserApi::on(ClientManagerListener::UserUpdated, const OnlineUser& aUser) noexcept { if (aUser.getUser()->getCID() == CID()) return; maybeSend("user_updated", [&] { return Serializer::serializeUser(aUser); }); }
void ShareProfileApi::on(ShareManagerListener::ProfileUpdated, ProfileToken aProfile, bool aIsMajorChange) noexcept { if (!aIsMajorChange) { // Don't spam when files are hashed return; } maybeSend("share_profile_updated", [&] { return serializeShareProfile(ShareManager::getInstance()->getShareProfile(aProfile)); }); }
void HashApi::on(HashManagerListener::HasherFinished, int aDirshashed, int aFilesHashed, int64_t aSizeHashed, time_t aHashDuration, int aHasherId) noexcept { maybeSend("hasher_finished", [&] { return json({ { "size", aSizeHashed }, { "files", aFilesHashed }, { "directories", aDirshashed }, { "duration", aHashDuration }, { "hasher_id", aHasherId }, }); }); }
void HashApi::on(HashManagerListener::DirectoryHashed, const string& aPath, int aFilesHashed, int64_t aSizeHashed, time_t aHashDuration, int aHasherId) noexcept { maybeSend("hasher_directory_finished", [&] { return json({ { "path", aPath }, { "size", aSizeHashed }, { "files", aFilesHashed }, { "duration", aHashDuration }, { "hasher_id", aHasherId }, }); }); }
void UserApi::on(ClientManagerListener::UserDisconnected, const UserPtr& aUser, bool aWentOffline) noexcept { if (aUser->getCID() == CID()) return; maybeSend("user_disconnected", [&] { return json({ { "user", Serializer::serializeUser(aUser) }, { "went_offline", aWentOffline }, }); }); }
void UserApi::on(ClientManagerListener::UserConnected, const OnlineUser& aUser, bool aWasOffline) noexcept { if (aUser.getUser()->getCID() == CID()) return; maybeSend("user_connected", [&] { return json({ { "user", Serializer::serializeUser(aUser) }, { "was_offline", aWasOffline }, }); }); }
void ShareRootApi::on(ShareManagerListener::RootCreated, const string& aPath) noexcept { if (!subscriptionActive("share_root_created") && !rootView.isActive()) { return; } auto info = ShareManager::getInstance()->getRootInfo(aPath); { WLock l(cs); roots.push_back(info); } rootView.onItemAdded(info); maybeSend("share_root_created", [&] { return Serializer::serializeItem(info, itemHandler); }); }
void ShareRootApi::on(ShareManagerListener::RootRemoved, const string& aPath) noexcept { if (rootView.isActive()) { WLock l(cs); auto i = find_if(roots.begin(), roots.end(), ShareDirectoryInfo::PathCompare(aPath)); if (i != roots.end()) { rootView.onItemRemoved(*i); roots.erase(i); } else { dcassert(0); } } maybeSend("share_root_removed", [&] { return json( { "path", aPath } ); }); }
void ViewFileApi::on(ViewFileManagerListener::FileAdded, const ViewFilePtr& aFile) noexcept { maybeSend("view_file_added", [&] { return serializeFile(aFile); }); }
void UserApi::on(MessageManagerListener::IgnoreRemoved, const UserPtr& aUser) noexcept { maybeSend("ignored_user_removed", [&] { return Serializer::serializeUser(aUser); }); }
void ViewFileApi::on(ViewFileManagerListener::FileFinished, const ViewFilePtr& aFile) noexcept { onViewFileUpdated(aFile); maybeSend("view_file_finished", [&] { return serializeFile(aFile); }); }
void ViewFileApi::onViewFileUpdated(const ViewFilePtr& aFile) noexcept { maybeSend("view_file_updated", [&] { return serializeFile(aFile); }); }
void FavoriteDirectoryApi::on(FavoriteManagerListener::FavoriteDirectoriesUpdated) noexcept { maybeSend("favorite_directories_updated", [&] { return serializeDirectories(); }); }
void ShareProfileApi::on(ShareManagerListener::ProfileRemoved, ProfileToken aProfile) noexcept { maybeSend("share_profile_removed", [&] { return json({ "id", aProfile }); }); }
void ShareRootApi::onRootUpdated(const ShareDirectoryInfoPtr& aInfo, PropertyIdSet&& aUpdatedProperties) noexcept { maybeSend("share_root_updated", [&] { return Serializer::serializeItemProperties(aInfo, aUpdatedProperties, itemHandler); }); rootView.onItemUpdated(aInfo, aUpdatedProperties); }
void ShareProfileApi::on(ShareManagerListener::ProfileAdded, ProfileToken aProfile) noexcept { maybeSend("share_profile_added", [&] { return serializeShareProfile(ShareManager::getInstance()->getShareProfile(aProfile)); }); }