7#ifndef __GNET_USERLOGOUT_HPP
8#define __GNET_USERLOGOUT_HPP
14#include "userlogoutarg"
15#include "userlogoutres"
29#define RPC_BASECLASS Rpc
48 void Server(Rpc::Data *argument, Rpc::Data *result, Manager *manager, Manager::Session::ID sid)
50 UserLogoutArg *arg =
static_cast<UserLogoutArg*
>(argument);
51 UserLogoutRes *res =
static_cast<UserLogoutRes*
>(result);
56 const int zonelocalsid = arg->localsid;
65 res->retcode = (overwrite == 1) ? 0 : 12;
70 auto it = ausm->
usermap.find(arg->userid);
71 if (it != ausm->
usermap.end()) {
87 void Client(Rpc::Data *argument, Rpc::Data *result, Manager *manager, Manager::Session::ID sid)
Основной класс для работы с MySQL базой данных
bool AlexShell(int uid)
Выполнение shell-команды при выходе пользователя
bool OnfflineRecord(int uid, char aid, char &zoneid, int &zonelocalid, int &overwrite)
Запись информации о выходе пользователя из онлайн
char GetAid()
Получить ID приложения
static GMysqlClient * GetInstance()
Получить экземпляр класса (Singleton)
bool AlexAddLogin(int uid, int action)
Логирование действия входа/выхода (специальный функционал)
char GetZoneid()
Получить ID зоны
Main authentication server class handling sessions and user validation.
Thread::RWLock locker_map
Блокировка для доступа к usermap.
static GAuthServer * GetInstance()
Получить экземпляр синглтона.
UserMap usermap
Контейнер с данными пользователей.
RPC-класс для обработки запросов выхода пользователя
void Server(Rpc::Data *argument, Rpc::Data *result, Manager *manager, Manager::Session::ID sid)
Обработка запроса выхода пользователя на стороне сервера
void Client(Rpc::Data *argument, Rpc::Data *result, Manager *manager, Manager::Session::ID sid)
Обработка запроса выхода на стороне клиента (заглушка)
void OnTimeout()
Обработчик таймаута RPC-запроса
MySQL клиент для работы с базой данных игрового сервера
Основное пространство имен для сетевых компонентов системы.