+#include <lib/base/eerror.h>
+#include <lib/base/estring.h>
#include <lib/service/service.h>
#include <lib/base/init_num.h>
#include <lib/base/init.h>
-eServiceReference::eServiceReference(const eString &string)
+eServiceReference::eServiceReference(const std::string &string)
{
const char *c=string.c_str();
int pathl=-1;
path=c+pathl;
}
-eString eServiceReference::toString() const
+std::string eServiceReference::toString() const
{
- eString ret;
- ret+=eString().sprintf("%d:", type);
- ret+=eString().sprintf("%d", flags);
+ std::string ret;
+ ret += getNum(type);
+ ret += ":";
+ ret += getNum(flags);
for (unsigned int i=0; i<sizeof(data)/sizeof(*data); ++i)
- ret+=":"+eString().sprintf("%x", data[i]);
+ {
+ ret+=":"+ getNum(data[i], 0x10);
+ }
ret+=":"+path;
return ret;
}
return i->second->list(ref, ptr);
}
+RESULT eServiceCenter::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr)
+{
+ std::map<int,ePtr<iServiceHandler> >::iterator i = handler.find(ref.type);
+ if (i == handler.end())
+ {
+ ptr = 0;
+ return -1;
+ }
+ return i->second->info(ref, ptr);
+}
+
RESULT eServiceCenter::addServiceFactory(int id, iServiceHandler *hnd)
{
handler.insert(std::pair<int,ePtr<iServiceHandler> >(id, hnd));
return 0;
}
+ /* default handlers */
+RESULT iServiceHandler::info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr)
+{
+ ptr = 0;
+ return -1;
+}
+
+#include <lib/service/event.h>
+
+RESULT iServiceInformation::getEvent(ePtr<eServiceEvent> &evt, int m_nownext)
+{
+ evt = 0;
+ return -1;
+}
+
+
eAutoInitPtr<eServiceCenter> init_eServiceCenter(eAutoInitNumbers::service, "eServiceCenter");