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