bool ServiceLoader::load(GDBusConnection* conn)
{
- //__load<AppHistoryService>(conn);
- __load<SensorRecorderService>(conn);
- __load<ContextStoreService>(conn);
- //__load<JobSchedulerService>(conn);
+ //__create<AppHistoryService>(conn);
+ __create<SensorRecorderService>(conn);
+ __create<ContextStoreService>(conn);
+ //__create<JobSchedulerService>(conn);
+
+ if (__services.size() == 1) {
+ _I("Switch to single-threading");
+ ServiceBase::setSingleThreading();
+ }
+
+ for (auto& svc : __services) {
+ if (!svc->start())
+ return false;
+ }
return !__services.empty();
}
static std::vector<ServiceBase*> __services;
- template<typename ServiceType> static void __load(GDBusConnection* conn)
+ template<typename ServiceType> static void __create(GDBusConnection* conn)
{
ServiceBase *svc = NULL;
try {
_W("Service creation failed (%s)", e.what());
return;
}
- if (!svc->start()) {
- delete svc;
- return;
- }
__services.push_back(svc);
}
};