X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/fd947779e36534941c5d7516ba34e4da21b8406b..afcbfd1a09e22ff4839ba5db42047c96f355506c:/projects/stargazer/services_impl.h diff --git a/projects/stargazer/services_impl.h b/projects/stargazer/services_impl.h index d0c1c52c..8101f2d9 100644 --- a/projects/stargazer/services_impl.h +++ b/projects/stargazer/services_impl.h @@ -21,12 +21,6 @@ #ifndef SERVICES_IMPL_H #define SERVICES_IMPL_H -#include - -#include -#include -#include - #include "stg/services.h" #include "stg/service_conf.h" #include "stg/locker.h" @@ -34,34 +28,46 @@ #include "stg/noncopyable.h" #include "stg/logger.h" +#include +#include +#include + +#include + class ADMIN; class SERVICES_IMPL : private NONCOPYABLE, public SERVICES { public: - SERVICES_IMPL(STORE * st); + explicit SERVICES_IMPL(STORE * st); virtual ~SERVICES_IMPL() {} int Add(const SERVICE_CONF & service, const ADMIN * admin); int Del(const std::string & name, const ADMIN * admin); int Change(const SERVICE_CONF & service, const ADMIN * admin); - bool Find(const std::string & name, SERVICE_CONF * service); + bool Find(const std::string & name, SERVICE_CONF * service) const; + bool Find(const std::string & name, SERVICE_CONF_RES * service) const; bool Exists(const std::string & name) const; const std::string & GetStrError() const { return strError; } + size_t Count() const { return data.size(); } + int OpenSearch() const; int SearchNext(int, SERVICE_CONF * service) const; int CloseSearch(int) const; private: - typedef list::iterator srv_iter; - typedef list::const_iterator const_srv_iter; + SERVICES_IMPL(const SERVICES_IMPL & rvalue); + SERVICES_IMPL & operator=(const SERVICES_IMPL & rvalue); + + typedef std::list::iterator iterator; + typedef std::list::const_iterator const_iterator; bool Read(); std::list data; STORE * store; STG_LOGGER & WriteServLog; - mutable std::map searchDescriptors; + mutable std::map searchDescriptors; mutable unsigned int handle; mutable pthread_mutex_t mutex; std::string strError;