]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/configuration/sgconfig/parser_admins.h
Split sgconfig parsers into seaparate files.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / parser_admins.h
1 /*
2  *    This program is free software; you can redistribute it and/or modify
3  *    it under the terms of the GNU General Public License as published by
4  *    the Free Software Foundation; either version 2 of the License, or
5  *    (at your option) any later version.
6  *
7  *    This program is distributed in the hope that it will be useful,
8  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
9  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  *    GNU General Public License for more details.
11  *
12  *    You should have received a copy of the GNU General Public License
13  *    along with this program; if not, write to the Free Software
14  *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15  */
16
17 /*
18  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
19  *    Author : Maxim Mamontov <faust@stargazer.dp.ua>
20  */
21
22 #ifndef __STG_SGCONFIG_PARSER_ADMINS_H__
23 #define __STG_SGCONFIG_PARSER_ADMINS_H__
24
25 #include "parser.h"
26
27 #include "stg/resetable.h"
28
29 #include <string>
30
31 class ADMINS;
32 class ADMIN;
33
34 namespace STG
35 {
36 namespace PARSER
37 {
38
39 class GET_ADMINS: public BASE_PARSER
40 {
41     public:
42         GET_ADMINS(const ADMIN & admin, const ADMINS & admins)
43             : BASE_PARSER(admin, "GetAdmins"), m_admins(admins) {}
44
45     private:
46         const ADMINS & m_admins;
47
48         void CreateAnswer();
49 };
50
51 class ADD_ADMIN: public BASE_PARSER
52 {
53     public:
54         ADD_ADMIN(const ADMIN & admin, ADMINS & admins)
55             : BASE_PARSER(admin, "AddAdmin"), m_admins(admins) {}
56         int Start(void * data, const char * el, const char ** attr);
57
58     private:
59         std::string admin;
60         ADMINS & m_admins;
61
62         void CreateAnswer();
63 };
64
65 class DEL_ADMIN: public BASE_PARSER
66 {
67     public:
68         DEL_ADMIN(const ADMIN & admin, ADMINS & admins)
69             : BASE_PARSER(admin, "DelAdmin"), m_admins(admins) {}
70         int Start(void * data, const char * el, const char ** attr);
71
72     private:
73         std::string admin;
74         ADMINS & m_admins;
75
76         void CreateAnswer();
77 };
78
79 class CHG_ADMIN: public BASE_PARSER
80 {
81     public:
82         CHG_ADMIN(const ADMIN & admin, ADMINS & admins)
83             : BASE_PARSER(admin, "ChgAdmin"), m_admins(admins) {}
84         int Start(void * data, const char * el, const char ** attr);
85
86     private:
87         std::string login;
88         RESETABLE<std::string> password;
89         RESETABLE<std::string> privAsString;
90         ADMINS & m_admins;
91
92         void CreateAnswer();
93 };
94
95 }
96 }
97
98 #endif