00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SCHROOT_BASE_MAIN_H
00021 #define SCHROOT_BASE_MAIN_H
00022
00023 #include <schroot/schroot-base-options.h>
00024
00025 #include <string>
00026
00027 namespace schroot_base
00028 {
00029
00035 class main
00036 {
00037 public:
00043 main (std::string const& program_name,
00044 std::string const& program_usage,
00045 options::ptr const& program_options);
00046
00048 virtual ~main ();
00049
00058 int
00059 run (int argc,
00060 char *argv[]);
00061
00067 virtual void
00068 action_help (std::ostream& stream);
00069
00075 virtual void
00076 action_version (std::ostream& stream);
00077
00078 protected:
00079
00087 virtual int
00088 run_impl () = 0;
00089
00091 std::string program_name;
00093 std::string program_usage;
00095 options::ptr program_options;
00096 };
00097
00098 }
00099
00100 #endif
00101
00102
00103
00104
00105
00106