]> git.stg.codes - stg.git/blobdiff - projects/stargazer/services_impl.h
Massive refactoring.
[stg.git] / projects / stargazer / services_impl.h
index 4c7044fafcd71505d38aca36be5be45f5fef06ef..31aa72b2ed612e43e1bb8aeb383233d5bc873811 100644 (file)
 #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);
+    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       srv_iter;
+    typedef std::list<SERVICE_CONF>::const_iterator const_srv_iter;
 
-    bool ReadServices();
+    bool Read();
 
     std::list<SERVICE_CONF> data;
     STORE *                 store;
@@ -65,3 +71,5 @@ private:
     mutable pthread_mutex_t mutex;
     std::string             strError;
 };
+
+#endif