gauthd
 
Loading...
Searching...
No Matches
D:/pwsrc2.0/docs/gauthd/statusannounce.hpp
Go to the documentation of this file.
1
6
7 #ifndef __GNET_STATUSANNOUNCE_HPP
8 #define __GNET_STATUSANNOUNCE_HPP
9
10 #include "rpcdefs.h"
11 #include "callid.hxx"
12 #include "state.hxx"
13 #include "gauthserver.hpp"
14
15 namespace GNET
16 {
17
26 class StatusAnnounce : public GNET::Protocol
27 {
28 #include "statusannounce" // Включение автоматически сгенерированных данных протокола
29
30 public:
45 void Process(Manager *manager, Manager::Session::ID sid)
46 {
48
49 // Блокировка карты пользователей для безопасной модификации
50 Thread::RWLock::WRScoped l(ausm->locker_map);
51
52 // Поиск пользователя в карте
53 GAuthServer::UserMap::const_iterator it = ausm->usermap.find(userid);
54
55 if (it != ausm->usermap.end() && (*it).second.sid == sid)
56 {
57 // Удаление пользователя из карты
58 ausm->usermap.erase(userid);
59
60 DEBUG_PRINT("gauthd:: user %d offline. online user count is %d\n",
61 userid, ausm->usermap.size());
62 }
63 }
64 };
65
66 }; // namespace GNET
67
68 #endif // __GNET_STATUSANNOUNCE_HPP
Main authentication server class handling sessions and user validation.
Thread::RWLock locker_map
Блокировка для доступа к usermap.
static GAuthServer * GetInstance()
Получить экземпляр синглтона.
UserMap usermap
Контейнер с данными пользователей.
Протокол обработки статусных уведомлений
void Process(Manager *manager, Manager::Session::ID sid)
Обработчик протокола
Заголовочный файл, содержащий определения классов для аутентификации и управления сессиями.
Основное пространство имен для сетевых компонентов системы.