X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/1347f3d1e04bedd1508589173f577673ee2c5554..f4333737c7e347efe9258ccf85c1237e03be619c:/projects/stargazer/corps_impl.h diff --git a/projects/stargazer/corps_impl.h b/projects/stargazer/corps_impl.h index 7bde401b..43bcb5d9 100644 --- a/projects/stargazer/corps_impl.h +++ b/projects/stargazer/corps_impl.h @@ -18,58 +18,54 @@ * Author : Maxim Mamontov <faust@stargazer.dp.ua> */ -#ifndef CORPORATIONS_IMPL_H -#define CORPORATIONS_IMPL_H - -#include <pthread.h> - -#include <list> -#include <map> -#include <string> +#pragma once #include "stg/corporations.h" #include "stg/corp_conf.h" #include "stg/locker.h" -#include "stg/store.h" -#include "stg/noncopyable.h" #include "stg/logger.h" -class ADMIN; +#include <vector> +#include <map> +#include <string> +#include <mutex> + +namespace STG +{ -class CORPORATIONS_IMPL : private NONCOPYABLE, public CORPORATIONS { +struct Admin; +struct Store; + +class CorporationsImpl : public Corporations { public: - CORPORATIONS_IMPL(STORE * st); - virtual ~CORPORATIONS_IMPL() {} + explicit CorporationsImpl(Store* st); - int Add(const CORP_CONF & corp, const ADMIN * admin); - int Del(const std::string & name, const ADMIN * admin); - int Change(const CORP_CONF & corp, const ADMIN * admin); - bool Find(const std::string & name, CORP_CONF * corp); - bool Exists(const std::string & name) const; - const std::string & GetStrError() const { return strError; } + int Add(const CorpConf& corp, const Admin* admin) override; + int Del(const std::string& name, const Admin* admin) override; + int Change(const CorpConf& corp, const Admin* admin) override; + bool Find(const std::string& name, CorpConf* corp) override; + bool Exists(const std::string& name) const override; + const std::string& GetStrError() const override { return strError; } - size_t Count() const { return data.size(); } + size_t Count() const override { return data.size(); } - int OpenSearch() const; - int SearchNext(int, CORP_CONF * corp) const; - int CloseSearch(int) const; + int OpenSearch() const override; + int SearchNext(int, CorpConf* corp) const override; + int CloseSearch(int) const override; private: - CORPORATIONS_IMPL(const CORPORATIONS_IMPL & rvalue); - CORPORATIONS_IMPL & operator=(const CORPORATIONS_IMPL & rvalue); - - typedef std::list<CORP_CONF>::iterator crp_iter; - typedef std::list<CORP_CONF>::const_iterator const_crp_iter; + typedef std::vector<CorpConf>::iterator crp_iter; + typedef std::vector<CorpConf>::const_iterator const_crp_iter; bool Read(); - std::list<CORP_CONF> data; - STORE * store; - STG_LOGGER & WriteServLog; + std::vector<CorpConf> data; + Store* store; + Logger& WriteServLog; mutable std::map<int, const_crp_iter> searchDescriptors; mutable unsigned int handle; - mutable pthread_mutex_t mutex; + mutable std::mutex mutex; std::string strError; }; -#endif +}