00001 #ifndef LOGGINGSERVICE_HPP 00002 #define LOGGINGSERVICE_HPP 1 00003 00004 #include <rtt/TaskContext.hpp> 00005 #include <rtt/PropertyBag.hpp> 00006 #include <rtt/Operation.hpp> 00007 00008 namespace OCL { 00009 namespace logging { 00010 00023 class LoggingService : public RTT::TaskContext 00024 { 00025 public: 00026 LoggingService(std::string name); 00027 virtual ~LoggingService(); 00028 00029 virtual bool configureHook(); 00030 00031 /* \todo 00032 00033 configuration of this component 00034 - specify category for this component to log to 00035 - specify priority of logging of this component 00036 00037 services for other components 00038 - method to set priority of any category 00039 - method to get priority of any category 00040 - method to log to a category 00041 */ 00042 00043 protected: 00044 // list of all category levels 00045 RTT::Property<RTT::PropertyBag> levels_prop; 00046 // list of appenders per category 00047 RTT::Property<RTT::PropertyBag> appenders_prop; 00048 // list of all active appenders 00049 std::vector<std::string> active_appenders; 00053 RTT::Operation<void(void)> logCategories_mtd; 00054 void logCategories(); 00055 }; 00056 00057 // namespaces 00058 } 00059 } 00060 00061 #endif