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
00066 void
00067 parse (int argc,
00068 char *argv[]);
00069
00071 bool quiet;
00073 bool verbose;
00074
00081 boost::program_options::options_description const&
00082 get_visible_options() const;
00083
00084 protected:
00088 virtual void
00089 add_options ();
00090
00094 virtual void
00095 add_option_groups ();
00096
00100 virtual void
00101 check_options ();
00102
00106 virtual void
00107 check_actions ();
00108
00110 boost::program_options::options_description general;
00112 boost::program_options::options_description hidden;
00114 boost::program_options::positional_options_description positional;
00116 boost::program_options::options_description visible;
00118 boost::program_options::options_description global;
00120 boost::program_options::variables_map vm;
00121
00122 private:
00124 std::string debug_level;
00125 };
00126
00127 }
00128
00129 #endif
00130
00131
00132
00133
00134
00135
00136