]> git.stg.codes - stg.git/blob - projects/sgauthstress/user.h
Fix some types and add UserCount method to PROTO
[stg.git] / projects / sgauthstress / user.h
1 #ifndef __USER_H__
2 #define __USER_H__
3
4 #include <ctime>
5 #include <string>
6
7 #include "stg/os_int.h"
8
9 class USER {
10     public:
11         USER(const std::string & login,
12              const std::string & password,
13              uint32_t ip);
14         ~USER();
15
16         const std::string & GetLogin() const { return login; }
17         uint32_t GetIP() const { return ip; }
18         uint32_t GetAliveTimeout() const { return aliveTimeout; }
19         uint32_t GetUserTimeout() const { return userTimeout; }
20         int GetPhase() const { return phase; }
21         int GetRnd() const { return rnd; }
22         int GetSocket() const { return sock; }
23         time_t GetPhaseChangeTime() const { return phaseChangeTime; }
24
25         BLOWFISH_CTX * GetCtx() { return &ctx; }
26
27         void SetPhase(int p) { phase = p; time(&phaseChangeTime); }
28         void SetRnd(int r) { rnd = r; }
29         int IncRnd() { return ++rnd; }
30         void SetAliveTimeout(uint32_t timeout) { aliveTimeout = timeout; }
31         void SetUserTimeout(uint32_t timeout) { userTimeout = timeout; }
32
33     private:
34         std::string login;
35         std::string password;
36         uint32_t ip;
37         uint32_t aliveTimeout;
38         uint32_t userTimeout;
39         int phase;
40         time_t phaseChangeTime;
41         int rnd;
42         int sock;
43         BLOWFISH_CTX ctx;
44 };
45
46 #endif