#ifndef UTILS_H #define UTILS_H #include namespace trygvis { namespace apps { namespace po = boost::program_options; class app_execution { public: app_execution(po::options_description desc, po::variables_map vm) : desc(desc), vm(vm) { } po::options_description desc; po::variables_map vm; void usage(); }; class app { public: virtual void add_options(po::options_description_easy_init &options) { }; virtual void add_extra_options(po::options_description &options) { }; virtual int main(app_execution &execution) = 0; }; int launch_app(int argc, char *argv[], app &app); std::string get_hostname(); static inline void noop_deleter(void *) { } } } #endif