30 #ifndef DATATOOLS_BASE_SERVICE_H 31 #define DATATOOLS_BASE_SERVICE_H 41 #include <boost/function/function_base.hpp> 61 class object_configuration_description;
78 const std::string & display_name_ =
"",
79 const std::string & description_ =
"",
102 virtual int reset() = 0;
111 void print_tree(std::ostream & out_ = std::clog,
112 const boost::property_tree::ptree & options_ =
empty_options())
const override;
116 void tree_dump(std::ostream & out_ = std::clog,
117 const std::string & title_ =
"",
118 const std::string & indent_ =
"",
119 bool inherit_ =
false)
const override;
152 #define DATATOOLS_SERVICE_REGISTRATION_INTERFACE(SERVICE_CLASS_NAME) \ 154 DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_INTERFACE(::datatools::base_service, SERVICE_CLASS_NAME) \ 156 virtual std::string service_class_id() const; \ 159 #define DATATOOLS_SERVICE_REGISTRATION_IMPLEMENT(SERVICE_CLASS_NAME,SERVICE_ID) \ 160 DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_IMPLEMENTATION (::datatools::base_service,SERVICE_CLASS_NAME,SERVICE_ID) \ 161 std::string SERVICE_CLASS_NAME::service_class_id() const {return SERVICE_ID;} 164 #endif // DATATOOLS_BASE_SERVICE_H
#define DR_CLASS_INIT(Introspectable)
Inform Camp that class Introspectable exists and trigger the automatic registration of dedicated refl...
Definition: reflection_interface.h:149
Utility macros for exception handling.
Utilities for logging information.
#define DR_CLASS_RTTI()
Declare Camp RTTI within class declaration.
Definition: reflection_interface.h:46
#define DATATOOLS_FACTORY_SYSTEM_REGISTER_INTERFACE(BaseType)
Declaration of a system (allocator/functor) factory register as a static member of a base class and s...
Definition: factory_macros.h:52