21 #ifndef DATATOOLS_UI_BASE_COMMAND_INTERFACE_H 22 #define DATATOOLS_UI_BASE_COMMAND_INTERFACE_H 32 #include <boost/optional.hpp> 43 class service_manager;
64 const std::string & description_ =
"",
80 std::size_t
size()
const;
83 bool has_command(
const std::string & command_name_)
const;
93 const std::string & command_name_ =
"");
98 const std::string & command_name_ =
"");
123 virtual void reset() = 0;
132 virtual void tree_dump(std::ostream & out_ = std::clog,
133 const std::string & title_ =
"",
134 const std::string & indent_ =
"",
135 bool inherit_ =
false)
const;
138 int operator()(
const std::vector<std::string> & argv_,
140 uint32_t flags_ = 0);
144 operator()(
const std::vector<std::string> & argv_,
145 uint32_t flags_ = 0);
148 void call(
const std::vector<std::string> & argv_,
150 uint32_t flags_ = 0);
156 const std::string & description_,
178 boost::optional<datatools::version_id> _version_;
183 pimpl_type & _grab_pimpl();
184 const pimpl_type & _get_pimpl()
const;
185 std::unique_ptr<pimpl_type> _pimpl_;
196 #endif // DATATOOLS_UI_BASE_COMMAND_INTERFACE_H
Utility macros for exception handling.
#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