owlps/owlps-positioner/userinterface.hh

64 lines
2.0 KiB
C++

/*
* This file is part of the Owl Positioning System (OwlPS) project.
* It is subject to the copyright notice and license terms in the
* COPYRIGHT.t2t file found in the top-level directory of this
* distribution and at
* https://code.lm7.fr/mcy/owlps/src/master/COPYRIGHT.t2t
* No part of the OwlPS Project, including this file, may be copied,
* modified, propagated, or distributed except according to the terms
* contained in the COPYRIGHT.t2t file; the COPYRIGHT.t2t file must be
* distributed along with this file, either separately or by replacing
* this notice by the COPYRIGHT.t2t file's contents.
*/
#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:
const int cli_argument_count ;
const char *const *const cli_argument_values ;
boost::program_options::options_description *cli_options ;
boost::program_options::options_description *file_options ;
/** @name Operations */
//@{
/// Fills in all the options
void fill_options(void) ;
/// Fills in the options accepted on the command line
void fill_cli_options(void) ;
/// Fills in the options accepted on the command line and in the
/// configuration file
void fill_file_options(void) ;
void fill_data_input_options(void) ;
void fill_input_options(void) ;
void fill_log_options(void) ;
void fill_positioning_options(void) ;
void fill_output_options(void) ;
void fill_misc_options(void) ;
/// Parses all the configuration inputs and updates Configuration
void parse_options(void) ;
void parse_command_line(void) const ;
void parse_file(void) const ;
/// Prints usage and/or version information if requested by the user
void print_information(void) const ;
//@}
public:
UserInterface(const int argc, const char *const *const argv) ;
~UserInterface(void) ;
} ;
#endif // _OWLPS_POSITIONING_USERINTERFACE_HH_