* Author : Maxim Mamontov <faust@stargazer.dp.ua>
*/
-#ifndef __STG_SGCONFIG_PARSER_SERVER_INFO_H__
-#define __STG_SGCONFIG_PARSER_SERVER_INFO_H__
+#pragma once
#include "parser.h"
-class ADMIN;
+#include "stg/common.h"
namespace STG
{
+
+struct Admin;
+struct Settings;
+struct Users;
+struct Tariffs;
+
namespace PARSER
{
class GET_SERVER_INFO: public BASE_PARSER {
public:
- GET_SERVER_INFO(const ADMIN & admin,
- const SETTINGS & settings,
- const USERS & users,
- const TARIFFS & tariffs)
- : BASE_PARSER(admin, "GetServerInfo"),
+ class FACTORY : public BASE_PARSER::FACTORY
+ {
+ public:
+ FACTORY(const Settings & settings, const Users & users, const Tariffs & tariffs)
+ : m_settings(settings), m_users(users), m_tariffs(tariffs) {}
+ BASE_PARSER * create(const Admin & admin) override { return new GET_SERVER_INFO(admin, m_settings, m_users, m_tariffs); }
+ static void Register(REGISTRY & registry, const Settings & settings, const Users & users, const Tariffs & tariffs)
+ { registry[ToLower(tag)] = new FACTORY(settings, users, tariffs); }
+ private:
+ const Settings & m_settings;
+ const Users & m_users;
+ const Tariffs & m_tariffs;
+ };
+
+ static const char * tag;
+
+ GET_SERVER_INFO(const Admin & admin,
+ const Settings & settings,
+ const Users & users,
+ const Tariffs & tariffs)
+ : BASE_PARSER(admin, tag),
m_settings(settings),
m_users(users),
m_tariffs(tariffs)
{}
private:
- const SETTINGS & m_settings;
- const USERS & m_users;
- const TARIFFS & m_tariffs;
+ const Settings & m_settings;
+ const Users & m_users;
+ const Tariffs & m_tariffs;
- void CreateAnswer();
+ void CreateAnswer() override;
};
}
}
-
-#endif