if (component.get() != NULL)
return component;
+ Log("Loading component '%s'", name.c_str());
+
ConfigObject::RefType componentConfig = m_ConfigHive->GetObject("component", name);
if (componentConfig.get() == NULL) {
if (ci == m_Components.end())
return;
+ Log("Unloading component '%s'", name.c_str());
+
Component::RefType component = ci->second;
component->Stop();
m_Components.erase(ci);
// TODO: unload DLL
}
+
+void Application::Log(const char *format, ...)
+{
+ char message[512];
+ va_list marker;
+
+ va_start(marker, format);
+ vsnprintf(message, sizeof(message), format, marker);
+ va_end(marker);
+
+ // TODO: log to file
+ fprintf(stderr, "%s\n", message);
+}
\ No newline at end of file
bool Daemonize(void);
void Shutdown(void);
+ void Log(const char *format, ...);
+
ConfigHive::RefType GetConfigHive(void);
shared_ptr<Component> LoadComponent(string name);