Class mgr args::Args

Материал из ISPWiki
Перейти к: навигация, поиск

Класс mgr_args::Args

Класс - описание формата командной строки

#include <mgrargs.h> 

Описание:

class mgr_args::Args

Перед использованием в нем необходимо зарегистрировать параметры при помощи метода AddOption

int main(int argc, char *argv[]) { 
   try { 
       mgr_args::Args args; 
       args 
           .AddOption("first", 'f', "first option").SetGroup("param").SetRequired() 
           .AddOption("second", 's', "second option").SetGroup("param"); 
               .AddSuboption("first-sub", 'f', "first suboption") 
               .AddOption("second-sub", 's', "second suboption") 
               .Last() 
           .AddOption("top", 'T', "another top option"); 
       if (args.Parse(argc, argv)) 
           args.Usage(); 
 
       if (args->Has("top")) 
           std::cout << "we have got --top param\n"; 
       ... 
 
   } catch (std::exception &e) { 
       std::cerr << e.what(); 
       return 1; 
   } 
   return 0; 
} 

Классы

class mgr_args::Args::Arg

Вспомогательный класс для регистрации параметров

Открытые типы (кратко)

typedef int size_type
typedef const char ** value_type

Открытые члены (кратко)

Args ( const string &desc = DEFAULT_DESC )

Конструктор


Arg & AddOption ( const string &name , char short_name , const string &help )

Добавить параметр


int Parse ( size_type argc , value_type argv )

Разобрать командную строку


string operator[] ( const string &name )

Получить значение параметра


ResultPtr GetResult () const

Получить ссылку на объкт с результатами анализа


void Usage ( const string &error = "" )

Сгенерировать исключение типа Args::UsageError.

Приватные члены (кратко)

Конструкторы

Args ( const string &desc = DEFAULT_DESC )

Конструктор

Аргументы:
desc описание программы, которое будет отображено в случае ошибок разбора параметров

Методы

Arg &AddOption ( const string &name , char short_name , const string &help )

Добавить параметр

Все параметры должны иметь короткое и длинное имя Несколько коротких имен параметров могут быть перечислены в одном аргументе командной строки

Аргументы:
name полное имя параметра без "--"
short_name короткое имя
help описание параметра

int Parse ( size_type argc , value_type argv )

Разобрать командную строку

анализирует командную строку и заполняет экземпляр класса Result

Returned: количество нераспознанных параметров
See also: GetResult

string operator[] ( const string &name )

Получить значение параметра

Вызывает operator[] из класса Result

ResultPtr GetResult () const

Получить ссылку на объкт с результатами анализа

void Usage ( const string &error = "" )

Сгенерировать исключение типа Args::UsageError.

Аргументы:
error Описание возникшей ошибки
Args::UsageError унаследован от std::exception. Метод UsageError::what() возвращает описание зерегистрированных параметров командной строки

Типы

typedef int size_type

typedef const char **value_type