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
00055 options ();
00056
00058 virtual ~options ();
00059
00060 void
00061 parse (int argc,
00062 char *argv[]);
00063
00065 bool quiet;
00067 bool verbose;
00068
00069 boost::program_options::options_description const&
00070 get_visible_options() const;
00071
00072 protected:
00073 virtual void
00074 add_options ();
00075
00076 virtual void
00077 add_option_groups ();
00078
00079 virtual void
00080 check_options ();
00081
00082 virtual void
00083 check_actions ();
00084
00085 boost::program_options::options_description general;
00086 boost::program_options::options_description hidden;
00087 boost::program_options::positional_options_description positional;
00088 boost::program_options::options_description visible;
00089 boost::program_options::options_description global;
00090 boost::program_options::variables_map vm;
00091
00092 private:
00094 std::string debug_level;
00095 };
00096
00097 }
00098
00099 #endif
00100
00101
00102
00103
00104
00105
00106