X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/5ff8211bdcd5f110621c0ff01fa0854b5e6d9762..2196a3a0cdc5384c082febb7f4aa5994cc7d80db:/projects/stargazer/store_loader.h diff --git a/projects/stargazer/store_loader.h b/projects/stargazer/store_loader.h index fd8b54a3..c187b540 100644 --- a/projects/stargazer/store_loader.h +++ b/projects/stargazer/store_loader.h @@ -18,49 +18,40 @@ * Author : Maxim Mamontov */ -/* - $Revision: 1.3 $ - $Date: 2010/03/04 12:24:19 $ - $Author: faust $ - */ +#pragma once -/* - * Header file for RAII store plugin loader - */ - -#ifndef __STORE_LOADER_H__ -#define __STORE_LOADER_H__ +#include "stg/module_settings.h" #include -#include "stg/module_settings.h" -#include "stg/noncopyable.h" +namespace STG +{ -class STORE; -class SETTINGS_IMPL; +struct Store; +class SettingsImpl; -class STORE_LOADER : private NONCOPYABLE { -public: - STORE_LOADER(const SETTINGS_IMPL & settings); - ~STORE_LOADER(); +class StoreLoader { + public: + explicit StoreLoader(const SettingsImpl& settings) noexcept; + ~StoreLoader(); - bool Load(); - bool Unload(); + StoreLoader(const StoreLoader&) = delete; + StoreLoader& operator=(const StoreLoader&) = delete; - STORE * GetStore() { return plugin; } + bool load() noexcept; + bool unload() noexcept; - const std::string & GetStrError() const { return errorStr; } + Store& get() noexcept { return *plugin; } -private: - STORE_LOADER(const STORE_LOADER & rvalue); - STORE_LOADER & operator=(const STORE_LOADER & rvalue); + const std::string& GetStrError() const noexcept { return errorStr; } - bool isLoaded; - void * handle; - STORE * plugin; - std::string errorStr; - MODULE_SETTINGS storeSettings; - std::string pluginFileName; + private: + bool isLoaded; + void* handle; + Store* plugin; + std::string errorStr; + ModuleSettings storeSettings; + std::string pluginFileName; }; -#endif +}