]> git.stg.codes - stg.git/blobdiff - projects/stargazer/services_impl.h
Merge remote-tracking branch 'origin/master' into ticket37
[stg.git] / projects / stargazer / services_impl.h
index 4c7044fafcd71505d38aca36be5be45f5fef06ef..56202c7a116ac65297f1cd387ab0a7d9e04fb2a5 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) 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