owlps/owlps-positioning/userinterface.hh

41 lines
1.2 KiB
C++

#ifndef _OWLPS_POSITIONING_USERINTERFACE_HH_
#define _OWLPS_POSITIONING_USERINTERFACE_HH_
#include <string>
#include <boost/program_options/options_description.hpp>
/// Handles configuration inputs from user
class UserInterface
{
protected:
std::string config_file_name ;
int cli_argument_count ;
char **cli_argument_values ;
boost::program_options::options_description *cli_options ;
boost::program_options::options_description *file_options ;
/** @name Operations */
//@{
/// Fill in all the options
void fill_options(void) ;
/// Fill in the options accepted on the command line
void fill_cli_options(void) ;
/// \brief Fill in the options accepted on the command line and in
/// the configuration file
void fill_file_options(void) ;
/// Parse all the configuration inputs and updates Configuration
void parse_options(void) ;
void parse_command_line(void) const ;
void parse_file(void) const ;
/// If help was requested by user, displays accepted options and exit
void print_usage_and_exit_if_requested(void) const ;
//@}
public:
UserInterface(const int argc, char **argv) ;
~UserInterface(void) ;
} ;
#endif // _OWLPS_POSITIONING_USERINTERFACE_HH_