00001 /* Copyright (c) 2007, Gennady Bystritsky <bystr@mac.com> 00002 * 00003 * Distributed under the MIT Licence. 00004 * This is free software. See 'LICENSE' for details. 00005 * You must read and accept the license prior to use. 00006 */ 00007 00008 #ifndef _SK_RT_SCOPE_CONTROLLER_ 00009 #define _SK_RT_SCOPE_CONTROLLER_ 00010 00011 #include <sk/util/Object.h> 00012 #include <sk/rt/scope/Aggregator.h> 00013 #include <map> 00014 00015 namespace sk { 00016 namespace rt { 00017 namespace logger { 00018 class Level; 00019 } 00020 namespace config { 00021 class Locator; 00022 } 00023 namespace scope { 00024 class Controller 00025 : public virtual sk::util::Object 00026 { 00027 public: 00028 Controller(); 00029 virtual ~Controller(); 00030 00031 void loadXmlConfig(const config::Locator& locator); 00032 void loadXmlConfig(const sk::util::String& top, const config::Locator& locator); 00033 void loadXmlConfig(const config::Locator& locator, const std::map<std::string, std::string>& values); 00034 void loadXmlConfig(const sk::util::String& top, const config::Locator& locator, const std::map<std::string, std::string>& values); 00035 00036 scope::Aggregator& getAggregator(); 00037 00038 // sk::util::Object re-implementation. 00039 const sk::util::Class getClass() const; 00040 00041 private: 00042 Controller(const Controller& other); 00043 Controller& operator = (const Controller& other); 00044 00045 scope::Aggregator _aggregator; 00046 }; 00047 } 00048 } 00049 } 00050 00051 #endif /* _SK_RT_SCOPE_CONTROLLER_ */