]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/configuration/rpcconfig/admins_methods.h
Allow to assign 0.0.0.0 to multiple users.
[stg.git] / projects / stargazer / plugins / configuration / rpcconfig / admins_methods.h
1 #ifndef __ADMINS_METHODS_H__
2 #define __ADMINS_METHODS_H__
3
4 #include <xmlrpc-c/base.hpp>
5 #include <xmlrpc-c/registry.hpp>
6
7 #include "stg/admins.h"
8 #include "stg/admin.h"
9
10 class RPC_CONFIG;
11
12 class METHOD_ADMIN_GET : public xmlrpc_c::method {
13 public:
14     METHOD_ADMIN_GET(RPC_CONFIG * c,
15                      ADMINS * a)
16         : config(c),
17           admins(a)
18     {
19     }
20
21     void execute(xmlrpc_c::paramList const & paramList,
22                  xmlrpc_c::value * const retvalPtr);
23
24 private:
25     METHOD_ADMIN_GET(const METHOD_ADMIN_GET & rvalue);
26     METHOD_ADMIN_GET & operator=(const METHOD_ADMIN_GET & rvalue);
27
28     RPC_CONFIG * config;
29     ADMINS * admins;
30 };
31
32 class METHOD_ADMIN_ADD : public xmlrpc_c::method {
33 public:
34     METHOD_ADMIN_ADD(RPC_CONFIG * c,
35                      ADMINS * a)
36         : config(c),
37           admins(a)
38     {
39     }
40
41     void execute(xmlrpc_c::paramList const & paramList,
42                  xmlrpc_c::value * const retvalPtr);
43
44 private:
45     METHOD_ADMIN_ADD(const METHOD_ADMIN_ADD & rvalue);
46     METHOD_ADMIN_ADD & operator=(const METHOD_ADMIN_ADD & rvalue);
47
48     RPC_CONFIG * config;
49     ADMINS * admins;
50 };
51
52 class METHOD_ADMIN_DEL : public xmlrpc_c::method {
53 public:
54     METHOD_ADMIN_DEL(RPC_CONFIG * c,
55                      ADMINS * a)
56         : config(c),
57           admins(a)
58     {
59     }
60
61     void execute(xmlrpc_c::paramList const & paramList,
62                  xmlrpc_c::value * const retvalPtr);
63
64 private:
65     METHOD_ADMIN_DEL(const METHOD_ADMIN_DEL & rvalue);
66     METHOD_ADMIN_DEL & operator=(const METHOD_ADMIN_DEL & rvalue);
67
68     RPC_CONFIG * config;
69     ADMINS * admins;
70 };
71
72 class METHOD_ADMIN_CHG : public xmlrpc_c::method {
73 public:
74     METHOD_ADMIN_CHG(RPC_CONFIG * c,
75                      ADMINS * a)
76         : config(c),
77           admins(a)
78     {
79     }
80
81     void execute(xmlrpc_c::paramList const & paramList,
82                  xmlrpc_c::value * const retvalPtr);
83
84 private:
85     METHOD_ADMIN_CHG(const METHOD_ADMIN_CHG & rvalue);
86     METHOD_ADMIN_CHG & operator=(const METHOD_ADMIN_CHG & rvalue);
87
88     RPC_CONFIG * config;
89     ADMINS * admins;
90 };
91
92 class METHOD_ADMINS_GET : public xmlrpc_c::method {
93 public:
94     METHOD_ADMINS_GET(RPC_CONFIG * c,
95                       ADMINS * a)
96         : config(c),
97           admins(a)
98     {
99     }
100
101     void execute(xmlrpc_c::paramList const & paramList,
102                  xmlrpc_c::value * const retvalPtr);
103
104 private:
105     METHOD_ADMINS_GET(const METHOD_ADMINS_GET & rvalue);
106     METHOD_ADMINS_GET & operator=(const METHOD_ADMINS_GET & rvalue);
107
108     RPC_CONFIG * config;
109     ADMINS * admins;
110 };
111
112 #endif