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:
00045 main (std::string const& program_name,
00046 std::string const& program_usage,
00047 options::ptr const& program_options);
00048
00050 virtual ~main ();
00051
00060 int
00061 run (int argc,
00062 char *argv[]);
00063
00069 virtual void
00070 action_help (std::ostream& stream);
00071
00077 virtual void
00078 action_version (std::ostream& stream);
00079
00080 protected:
00088 virtual int
00089 run_impl () = 0;
00090
00092 std::string program_name;
00094 std::string program_usage;
00096 options::ptr program_options;
00097 };
00098
00099 }
00100
00101 #endif
00102
00103
00104
00105
00106
00107