#include "stg/locker.h"
#include "stg/store.h"
#include "stg/noncopyable.h"
+#include "stg/logger.h"
class ADMIN;
class SERVICES_IMPL : private NONCOPYABLE, public SERVICES {
public:
SERVICES_IMPL(STORE * st);
- virtual SERVICES_IMPL() {}
+ 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 FindService(const std::string & name, SERVICE_CONF & service);
- bool ServiceExists(const std::string & name) const;
- const std::string & GetStrError() const;
+ 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<SERVICE_CONF>::iterator srv_iter;
- typedef list<SERVICE_CONF>::const_iterator const_srv_iter;
+ SERVICES_IMPL(const SERVICES_IMPL & rvalue);
+ SERVICES_IMPL & operator=(const SERVICES_IMPL & rvalue);
+
+ typedef std::list<SERVICE_CONF>::iterator iterator;
+ typedef std::list<SERVICE_CONF>::const_iterator const_iterator;
- bool ReadServices();
+ bool Read();
std::list<SERVICE_CONF> data;
STORE * store;
STG_LOGGER & WriteServLog;
- mutable std::map<int, const_srv_iter> searchDescriptors;
+ mutable std::map<int, const_iterator> searchDescriptors;
mutable unsigned int handle;
mutable pthread_mutex_t mutex;
std::string strError;
};
+
+#endif