return -1;
}
-srv_iter si(find(data.begin(), data.end(), service));
+iterator si(std::find(data.begin(), data.end(), service));
if (si != data.end())
{
return -1;
}
-srv_iter si(find(data.begin(), data.end(), SERVICE_CONF(name)));
+iterator si(std::find(data.begin(), data.end(), SERVICE_CONF(name)));
if (si == data.end())
{
return -1;
}
-std::map<int, const_srv_iter>::iterator csi;
+std::map<int, const_iterator>::iterator csi;
csi = searchDescriptors.begin();
while (csi != searchDescriptors.end())
{
return -1;
}
-srv_iter si(find(data.begin(), data.end(), service));
+iterator si(std::find(data.begin(), data.end(), service));
if (si == data.end())
{
return -1;
}
+printfd(__FILE__, "Old cost = %f, old pay day = %d\n", si->cost, (unsigned)si->payDay);
*si = service;
+printfd(__FILE__, "New cost = %f, New pay day = %d\n", si->cost, (unsigned)si->payDay);
if (store->SaveService(service))
{
WriteServLog("Cannot write service %s.", service.name.c_str());
return false;
}
//-----------------------------------------------------------------------------
-bool SERVICES_IMPL::Find(const std::string & name, SERVICE_CONF * service)
+bool SERVICES_IMPL::Find(const std::string & name, SERVICE_CONF * service) const
{
assert(service != NULL && "Pointer to service is not null");
STG_LOCKER lock(&mutex);
if (data.empty())
+ return true;
+
+const_iterator si(std::find(data.begin(), data.end(), SERVICE_CONF(name)));
+
+if (si != data.end())
+ {
+ *service = *si;
return false;
+ }
+
+return true;
+}
+//-----------------------------------------------------------------------------
+bool SERVICES_IMPL::Find(const std::string & name, SERVICE_CONF_RES * service) const
+{
+assert(service != NULL && "Pointer to service is not null");
+
+STG_LOCKER lock(&mutex);
+if (data.empty())
+ return true;
-srv_iter si(find(data.begin(), data.end(), SERVICE_CONF(name)));
+const_iterator si(std::find(data.begin(), data.end(), SERVICE_CONF(name)));
if (si != data.end())
{
STG_LOCKER lock(&mutex);
if (data.empty())
{
- printfd(__FILE__, "no admin in system!\n");
+ printfd(__FILE__, "No services in the system!\n");
return true;
}
-const_srv_iter si(find(data.begin(), data.end(), SERVICE_CONF(name)));
+const_iterator si(std::find(data.begin(), data.end(), SERVICE_CONF(name)));
if (si != data.end())
return true;
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; }
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;
+ typedef std::list<SERVICE_CONF>::iterator iterator;
+ typedef std::list<SERVICE_CONF>::const_iterator const_iterator;
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;