Skip to content
Snippets Groups Projects
Commit 068f773b authored by fxk8y's avatar fxk8y :spider:
Browse files

ST: Couting started services

parent e2852f43
No related branches found
No related tags found
No related merge requests found
......@@ -37,13 +37,14 @@ namespace SiliconTorch {
registrationLocked = true;
// TODO: start services!
printServiceTable();
ESP_LOGI(TAG, "Starting services…");
u32 started = startEnabledServices();
ESP_LOGI(TAG, "Starting services#[ %d ] done.", started);
}
std::vector<Service*> ServiceManager::getServicesInStartOrder() {
std::vector<Service*> ServiceManager::getServicesInStartOrder() const {
std::vector<Service*> services;
for (const auto& [_, service] : serviceMap)
......@@ -56,15 +57,22 @@ namespace SiliconTorch {
return services;
}
void ServiceManager::startEnabledServices() {
u32 ServiceManager::startEnabledServices() {
std::vector<Service*> services = getServicesInStartOrder();
u32 started = 0;
for (const auto& service : services)
if (service->isEnabled()) service->start();
for (const auto& service : services) {
if (service->isEnabled()) {
service->start();
started++;
}
}
return started;
}
void ServiceManager::printServiceTable() {
void ServiceManager::printServiceTable() const {
// burn a few cycles because Espressivs logging is mehr :/
// while (xTaskGetTickCount() * portTICK_PERIOD_MS < 1000) {
......@@ -148,7 +156,7 @@ namespace SiliconTorch {
}
}
bool ServiceManager::getServiceEnabled(const str& name) {
bool ServiceManager::getServiceEnabled(const str& name) const {
if (serviceMap.count(name) > 0) {
return serviceMap.at(name)->isEnabled();
} else {
......
......@@ -33,15 +33,15 @@ namespace SiliconTorch {
ServiceManager();
void startEnabledServices();
u32 startEnabledServices();
void printServiceTable();
void printServiceTable() const;
void setServiceEnabled(const str& name, bool enabled);
bool getServiceEnabled(const str& name);
bool getServiceEnabled(const str& name) const;
std::vector<Service*> getServicesInStartOrder();
std::vector<Service*> getServicesInStartOrder() const;
void registerService(Service* s);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment