X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/stargazer/plugin_mgr.h diff --git a/stargazer/plugin_mgr.h b/stargazer/plugin_mgr.h new file mode 100644 index 00000000..a37052d5 --- /dev/null +++ b/stargazer/plugin_mgr.h @@ -0,0 +1,61 @@ +#ifndef __STG_PLUGIN_MGR_H__ +#define __STG_PLUGIN_MGR_H__ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * Author : Maxim Mamontov + */ + +#include "stg/module_settings.h" + +#include + +class SETTINGS_IMPL; +class PLUGIN_RUNNER; +class STORE; +class ADMINS_IMPL; +class TARIFFS_IMPL; +class SERVICES_IMPL; +class CORPORATIONS_IMPL; +class USERS_IMPL; +class TRAFFCOUNTER_IMPL; +class STG_LOGGER; + +namespace STG +{ + +class PluginManager +{ + public: + PluginManager(const SETTINGS_IMPL& settings, + STORE& store, ADMINS_IMPL& admins, TARIFFS_IMPL& tariffs, + SERVICES_IMPL& services, CORPORATIONS_IMPL& corporations, + USERS_IMPL& users, TRAFFCOUNTER_IMPL& traffcounter); + ~PluginManager(); + + void reload(const SETTINGS_IMPL& settings); + void stop(); + + private: + std::vector m_modules; + STG_LOGGER & m_log; +}; + +} // namespace STG + +#endif