]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/configuration/rpcconfig/users_methods.h
Pass config file via const reference in sgauth/sgathstress settings
[stg.git] / projects / stargazer / plugins / configuration / rpcconfig / users_methods.h
1 #ifndef __USERS_METHODS_H__
2 #define __USERS_METHODS_H__
3
4 #include <xmlrpc-c/base.hpp>
5 #include <xmlrpc-c/registry.hpp>
6
7 class RPC_CONFIG;
8 class ADMINS;
9 class TARIFFS;
10 class USERS;
11 class STORE;
12 struct IP_MASK;
13
14 class METHOD_USER_GET : public xmlrpc_c::method {
15 public:
16     METHOD_USER_GET(RPC_CONFIG * c,
17                     USERS * u)
18         : config(c),
19           users(u)
20     {
21     }
22
23     void execute(xmlrpc_c::paramList const & paramList,
24                  xmlrpc_c::value *   const   retvalP);
25 private:
26     RPC_CONFIG * config;
27     USERS * users;
28 };
29
30 class METHOD_USER_ADD : public xmlrpc_c::method {
31 public:
32     METHOD_USER_ADD(RPC_CONFIG * c,
33                     ADMINS * a,
34                     USERS * u)
35         : config(c),
36           admins(a),
37           users(u)
38     {
39     }
40
41     void execute(xmlrpc_c::paramList const & paramList,
42                  xmlrpc_c::value *   const   retvalP);
43 private:
44     RPC_CONFIG * config;
45     ADMINS * admins;
46     USERS * users;
47 };
48
49 class METHOD_USER_DEL : public xmlrpc_c::method {
50 public:
51     METHOD_USER_DEL(RPC_CONFIG * c,
52                     ADMINS * a,
53                     USERS * u)
54         : config(c),
55           admins(a),
56           users(u)
57     {
58     }
59
60     void execute(xmlrpc_c::paramList const & paramList,
61                  xmlrpc_c::value *   const   retvalP);
62 private:
63     RPC_CONFIG * config;
64     ADMINS * admins;
65     USERS * users;
66 };
67
68 class METHOD_USERS_GET : public xmlrpc_c::method {
69 public:
70     METHOD_USERS_GET(RPC_CONFIG * c,
71                      USERS * u)
72         : config(c),
73           users(u)
74     {
75     }
76
77     void execute(xmlrpc_c::paramList const & paramList,
78                  xmlrpc_c::value *   const   retvalP);
79 private:
80     RPC_CONFIG * config;
81     USERS * users;
82 };
83
84 class METHOD_USER_CHG : public xmlrpc_c::method {
85 public:
86     METHOD_USER_CHG(RPC_CONFIG * c,
87                     ADMINS * a,
88                     TARIFFS * t,
89                     STORE * s,
90                     USERS * u)
91         : config(c),
92           admins(a),
93           tariffs(t),
94           store(s),
95           users(u)
96     {
97     }
98
99     void execute(xmlrpc_c::paramList const & paramList,
100                  xmlrpc_c::value *   const   retvalP);
101 private:
102     RPC_CONFIG * config;
103     ADMINS * admins;
104     TARIFFS * tariffs;
105     STORE * store;
106     USERS * users;
107 };
108
109 class METHOD_USER_CASH_ADD : public xmlrpc_c::method {
110 public:
111     METHOD_USER_CASH_ADD(RPC_CONFIG * c,
112                          ADMINS * a,
113                          STORE * s,
114                          USERS * u)
115         : config(c),
116           admins(a),
117           store(s),
118           users(u)
119     {
120     }
121
122     void execute(xmlrpc_c::paramList const & paramList,
123                  xmlrpc_c::value *   const   retvalP);
124 private:
125     RPC_CONFIG * config;
126     ADMINS * admins;
127     STORE * store;
128     USERS * users;
129 };
130
131 class METHOD_USER_CASH_SET : public xmlrpc_c::method {
132 public:
133     METHOD_USER_CASH_SET(RPC_CONFIG * c,
134                          ADMINS * a,
135                          STORE * s,
136                          USERS * u)
137         : config(c),
138           admins(a),
139           store(s),
140           users(u)
141     {
142     }
143
144     void execute(xmlrpc_c::paramList const & paramList,
145                  xmlrpc_c::value *   const   retvalP);
146 private:
147     RPC_CONFIG * config;
148     ADMINS * admins;
149     STORE * store;
150     USERS * users;
151 };
152
153 class METHOD_USER_TARIFF_CHANGE : public xmlrpc_c::method {
154 public:
155     METHOD_USER_TARIFF_CHANGE(RPC_CONFIG * c,
156                               ADMINS * a,
157                               TARIFFS * t,
158                               STORE * s,
159                               USERS * u)
160         : config(c),
161           admins(a),
162           tariffs(t),
163           store(s),
164           users(u)
165     {
166     }
167
168     void execute(xmlrpc_c::paramList const & paramList,
169                  xmlrpc_c::value *   const   retvalP);
170 private:
171     RPC_CONFIG * config;
172     ADMINS * admins;
173     TARIFFS * tariffs;
174     STORE * store;
175     USERS * users;
176 };
177
178 class METHOD_GET_ONLINE_IPS : public xmlrpc_c::method {
179 public:
180     METHOD_GET_ONLINE_IPS(RPC_CONFIG * c,
181                           USERS * u)
182         : config(c),
183           users(u)
184     {
185     }
186
187     void execute(xmlrpc_c::paramList const & paramList,
188                  xmlrpc_c::value *   const   retvalP);
189 private:
190     RPC_CONFIG * config;
191     USERS * users;
192
193     bool ParseNet(const std::string & net, IP_MASK & ipm) const;
194 };
195
196 #endif