registered_services[$service_name])) { $this->delayed_restarts[$service_name] = $action; } else { $app->log("Unable to add a delayed restart for '$service_name'. Service '$service_name' is not registered.",LOGLEVEL_WARNING); } } // This function restarts a service when the function is called function restartService($service_name,$action = 'restart') { global $app; if(is_array($this->registered_services[$service_name])) { $module_name = $this->registered_services[$service_name]["module"]; $function_name = $this->registered_services[$service_name]["function"]; $app->log("Call function '$function_name' in module '$module_name'.",LOGLEVEL_DEBUG); call_user_method($function_name,$app->loaded_modules[$module_name],$action); } else { $app->log("Unable to restart $service_name. Service $service_name is not registered.",LOGLEVEL_WARNING); } } // This function is used to register callback functions for services that can be restarted function registerService($service_name,$module_name, $function_name) { global $app; $this->registered_services[$service_name] = array('module' => $module_name, 'function' => $function_name); $app->log("Registered Service '$service_name' in module '$module_name' for processing function '$function_name'",LOGLEVEL_DEBUG); } // This function is called at the end of the server script to restart services. function processDelayedActions() { global $app; foreach($this->delayed_restarts as $service_name => $action) { $this->restartService($service_name,$action); } } } ?>