00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SCHROOT_BASE_OPTIONS_H
00021 #define SCHROOT_BASE_OPTIONS_H
00022
00023 #include <sbuild/sbuild-session.h>
00024 #include <sbuild/sbuild-types.h>
00025
00026 #include <string>
00027
00028 #ifdef HAVE_TR1_MEMORY
00029 #include <tr1/memory>
00030 #elif HAVE_BOOST_SHARED_PTR_HPP
00031 #include <boost/shared_ptr.hpp>
00032 namespace std { namespace tr1 { using boost::shared_ptr; } }
00033 #else
00034 #error A shared_ptr implementation is not available
00035 #endif
00036
00037 #include <boost/program_options.hpp>
00038
00039 namespace schroot_base
00040 {
00041
00048 class options
00049 {
00050 public:
00052 typedef std::tr1::shared_ptr<options> ptr;
00053
00060 options ();
00061
00063 virtual ~options ();
00064
00065 void
00066 parse (int argc,
00067 char *argv[]);
00068
00070 bool quiet;
00072 bool verbose;
00073
00074 boost::program_options::options_description const&
00075 get_visible_options() const;
00076
00077 protected:
00078 virtual void
00079 add_options ();
00080
00081 virtual void
00082 add_option_groups ();
00083
00084 virtual void
00085 check_options ();
00086
00087 virtual void
00088 check_actions ();
00089
00090 boost::program_options::options_description general;
00091 boost::program_options::options_description hidden;
00092 boost::program_options::positional_options_description positional;
00093 boost::program_options::options_description visible;
00094 boost::program_options::options_description global;
00095 boost::program_options::variables_map vm;
00096
00097 private:
00099 std::string debug_level;
00100 };
00101
00102 }
00103
00104 #endif
00105
00106
00107
00108
00109
00110
00111