нл:: АргПарсер

Краткое содержание

Перечисления

OptionArgumentType перечисление
Определяет требования к аргументам для параметра командной строки.

Определения типов

NonOptionArgHandlerFunct )(const char *progName, int argc, char *argv[]) определение типа
bool(*
Функция, которую можно вызвать для обработки любых оставшихся аргументов командной строки, не являющихся параметрами.
OptionHandlerFunct )(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) определение типа
bool(*
Функция, которую можно вызвать для обработки набора параметров командной строки.

Переменные

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Указатель на функцию, используемую для вывода ошибок, возникающих во время анализа аргументов.
gActiveOptionSets = NULL
Список наборов параметров, передаваемый в текущий активный вызов ParseArgs().

Функции

CountAllOptions ( OptionSet *optSets[])
size_t
CountAllOptions ( OptionSet **optSets)
size_t
CountOptionSets ( OptionSet *optSets[])
size_t
CountOptionSets ( OptionSet **optSets)
size_t
DefaultPrintArgError (const char *msg, ...)
void
Выведите сообщение об ошибке, связанное с анализом аргументов.
FindOptionById ( OptionSet **optSets, int optId, OptionSet *& optSet, OptionDef *& optDef)
void
FindOptionByIndex ( OptionSet **optSets, int optIndex, OptionSet *& optSet, OptionDef *& optDef)
void
GetNextArg (char *& parsePoint)
bool
IsShortOptionChar (int ch)
bool
MakeLongOptions ( OptionSet **optSets)
struct option *
MakeShortOptions ( OptionSet **optSets)
char *
MakeUniqueHelpGroupNamesList ( OptionSet *optSets[])
const char **
ParseArgs (const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Проанализируйте набор аргументов в стиле командной строки, вызывая функции обработки для обработки каждого параметра и аргумента, не являющегося параметром.
ParseArgs (const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgs (const char *progName, int argc, char *argv[], OptionSet *optSets[])
bool
ParseArgsFromEnvVar (const char *progName, const char *varName, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Проанализируйте набор аргументов из именованной переменной среды.
ParseArgsFromEnvVar (const char *progName, const char *varName, OptionSet *optSets[])
bool
ParseArgsFromEnvVar (const char *progName, const char *varName, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgsFromString (const char *progName, const char *argStr, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown)
bool
Анализ набора аргументов из заданной строки.
ParseArgsFromString (const char *progName, const char *argStr, OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler)
bool
ParseArgsFromString (const char *progName, const char *argStr, OptionSet *optSets[])
bool
ParseBoolean (const char *str, bool & output)
bool
Разобрать строку как логическое значение.
ParseFabricId (const char *str, uint64_t & fabricId, bool allowReserved)
bool
Разберите идентификатор ткани Weave в текстовой форме.
ParseHexString (const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Разобрать строку байтов, заданную в шестнадцатеричной форме.
ParseIPAddress (const char *str, IPAddress & output)
bool
Разберите IP-адрес в текстовой форме.
ParseInt (const char *str, uint64_t & output, int base)
bool
Разберите и попытайтесь преобразовать строку в 64-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, uint32_t & output, int base)
bool
Разберите и попытайтесь преобразовать строку в 32-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, int32_t & output, int base)
bool
Разберите и попытайтесь преобразовать строку в 32-битное целое число со знаком, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, uint64_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 64-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, uint32_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 32-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, int32_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 32-битное целое число со знаком, применяя соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, uint16_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 16-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, int16_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 16-битное целое число со знаком, применяя соответствующую интерпретацию на основе базового параметра.
ParseInt (const char *str, uint8_t & output)
bool
Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 8-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.
ParseNodeId (const char *str, uint64_t & nodeId)
bool
Разберите идентификатор узла Weave в текстовой форме.
ParseSubnetId (const char *str, uint16_t & subnetId)
bool
Разберите и попытайтесь преобразовать строку в 16-битный беззнаковый идентификатор подсети, интерпретируя строку как шестнадцатеричную.
PrintOptionHelp ( OptionSet *optSets[], FILE *s)
void
Распечатайте текст справки для указанного списка параметров в поток.
PutStringWithBlankLine (FILE *s, const char *str)
void
PutStringWithNewLine (FILE *s, const char *str)
void
SplitArgs (char *argStr, char **& argList, char *initialArg)
int32_t

Классы

nl:: ArgParser:: HelpOptions

Общий набор параметров для обработки информационных опций (справка, версия).

nl:: ArgParser:: OptionSetBase

OptionSet , где обработчик является виртуальной функцией.

Структуры

nl:: ArgParser:: OptionDef

Определяет параметр командной строки.

nl:: ArgParser:: OptionSet

Определяет группу логически связанных и многократно используемых параметров командной строки.

Перечисления

OptionArgumentType

 OptionArgumentType

Определяет требования к аргументам для параметра командной строки.

Определения типов

NonOptionArgHandlerFunct

bool(* NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[])

Функция, которую можно вызвать для обработки любых оставшихся аргументов командной строки, не являющихся параметрами.

OptionHandlerFunct

bool(* OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg)

Функция, которую можно вызвать для обработки набора параметров командной строки.

Переменные

PrintArgError

void(* PrintArgError)(const char *msg,...) = DefaultPrintArgError

Указатель на функцию, используемую для вывода ошибок, возникающих во время анализа аргументов.

Приложения должны вызывать PrintArgError(), чтобы сообщать об ошибках в функциях обработки аргументов, не являющихся опциями, а не печатать непосредственно на стандартный вывод/stderr.

По умолчанию это указатель на функцию DefaultPrintArgError() .

гактивеопционсетс

OptionSet ** gActiveOptionSets = NULL

Список наборов параметров, передаваемый в текущий активный вызов ParseArgs().

Это значение будет NULL, если вызов ParseArgs() не выполняется.

Функции

CountAllOptions

size_t CountAllOptions(
  OptionSet *optSets[]
)

CountAllOptions

size_t CountAllOptions(
  OptionSet **optSets
)

CountOptionSets

size_t CountOptionSets(
  OptionSet *optSets[]
)

CountOptionSets

size_t CountOptionSets(
  OptionSet **optSets
)

Дефаултпринтаргеррор

void DefaultPrintArgError(
  const char *msg,
  ...
)

Выведите сообщение об ошибке, связанное с анализом аргументов.

Функция по умолчанию, используемая для печати сообщений об ошибках, возникающих из-за анализа аргументов.

Подробности
Параметры
[in] msg
Сообщение для печати.

Приложения должны вызывать функцию через указатель на функцию PrintArgError, а не вызывать эту функцию напрямую.

FindOptionById

void FindOptionById(
  OptionSet **optSets,
  int optId,
  OptionSet *& optSet,
  OptionDef *& optDef
)

FindOptionByIndex

void FindOptionByIndex(
  OptionSet **optSets,
  int optIndex,
  OptionSet *& optSet,
  OptionDef *& optDef
)

GetNextArg

bool GetNextArg(
  char *& parsePoint
)

IsShortOptionChar

bool IsShortOptionChar(
  int ch
)

MakeLongOptions

struct option * MakeLongOptions(
  OptionSet **optSets
)

MakeShortOptions

char * MakeShortOptions(
  OptionSet **optSets
)

MakeUniqueHelpGroupNamesList

const char ** MakeUniqueHelpGroupNamesList(
  OptionSet *optSets[]
)

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Проанализируйте набор аргументов в стиле командной строки, вызывая функции обработки для обработки каждого параметра и аргумента, не являющегося параметром.

ParseArgs() принимает список аргументов ( argv ) и анализирует его в соответствии с набором предоставленных определений опций. Функция поддерживает как длинные (opt), так и короткие (-o) параметры и реализует тот же синтаксис параметров, что и функция GNU getopt_long(3).

Подробности
Параметры
[in] progName
Имя программы или контекст, в котором анализируются аргументы. Эта строка будет использоваться для префикса сообщений об ошибках и предупреждений.
[in] argc
Количество аргументов для анализа плюс 1.
[in] argv
Массив строк аргументов для анализа. Длина массива должна быть на 1 больше значения, указанного для argc, а для argv[argc] должно быть установлено значение NULL. Разбор аргументов начинается со второго элемента массива (argv[1]); элемент 0 игнорируется.
[in] optSets
Список указателей на структуры OptionSet , определяющие допустимые параметры. Предоставленный список должен заканчиваться NULL.
[in] nonOptArgHandler
Указатель на функцию, которая будет вызвана после завершения анализа параметров с оставшимися аргументами, не являющимися параметрами. Функция вызывается независимо от того, остались ли какие-либо аргументы. Если передан NULL, ParseArgs() сообщит об ошибке, если присутствуют какие-либо аргументы, не являющиеся опциями.
[in] ignoreUnknown
Если это правда, молча игнорируйте любые нераспознанные параметры.
Возврат
true , если все параметры и аргументы, не являющиеся параметрами, были проанализированы успешно; false , если опция не распознана или если одна из функций обработчика не удалась (т. е. вернула false).

Определения опций передаются в ParseArgs() как массив структур OptionSet ( optSets ). Каждый OptionSet содержит массив определений опций и функцию-обработчик. ParseArgs() обрабатывает аргументы опций в заданном порядке, вызывая соответствующую функцию-обработчик для каждой распознанной опции. После того, как все параметры проанализированы, отдельная функция-обработчик, не являющаяся параметром ( nonOptArgHandler ), вызывается один раз для обработки любых оставшихся аргументов.

НАБОРЫ ОПЦИЙ

OptionSet содержит набор определений опций вместе с указателем на функцию-обработчик, которая будет вызываться при обнаружении одной из связанных опций. Наборы опций также содержат текст справки, описывающий синтаксис и назначение каждой опции (см. СПРАВКА ПО ОПЦИИ ниже). Наборы опций предназначены для создания повторно используемых коллекций связанных опций. Это упрощает работу, необходимую для поддержки нескольких приложений, которые принимают одинаковые параметры (например, тестовые приложения).

Существует два шаблона для определения OptionSetsone: он может либо инициализировать экземпляр самой структуры OptionSet , например, как статический глобальный объект, либо подкласс OptionSetBase и предоставить конструктор. Последний использует чисто виртуальную функцию HandleOption() для делегирования обработки опций подклассу.

Списки наборов параметров передаются в функцию ParseArgs() как массив указателей, завершающийся NULL. Например:

static OptionSet gToolOptions =
{
    HandleOption,        // handler function
    gToolOptionDefs,  // array of option definitions
    "GENERAL OPTIONS",   // help group
    gToolOptionHelp   // option help text
};

static OptionSet *gOptionSets[] =
{
    &gToolOptions,
    &gNetworkOptions,
    &gTestingOptions,
    &gHelpOptions,
    NULL
};

int main(int argc, char *argv[])
{
    if (!ParseArgs("test-app", argc, argv, gOptionSets))
    {
        ...
    }
}

ОПРЕДЕЛЕНИЯ ОПЦИЙ

Параметры определяются с использованием структуры OptionDef . Определения параметров организованы в виде массива элементов OptionDef , где каждый элемент содержит: имя параметра, целочисленный идентификатор, который используется для идентификации параметра, а также сведения о том, ожидает ли параметр/разрешает аргумент. Конец массива опций обозначается полем NULL Name. Например:

enum
{
    kOpt_Listen = 1000,
    kOpt_Length,
    kOpt_Count,
};

static OptionDef gToolOptionDefs[] =
{
    // NAME         REQUIRES/ALLOWS ARG?  ID/SHORT OPTION CHAR
    // ============================================================
    {  "listen",    kNoArgument,          kOpt_Listen     },
    {  "length",    kArgumentRequired,    kOpt_Length     },
    {  "count",     kArgumentRequired,    kOpt_Count      },
    {  "num",       kArgumentRequired,    kOpt_Count      }, // alias for --count
    {  "debug",     kArgumentOptional,    'd'             },
    {  "help",      kNoArgument,          'h'             },
    {  NULL }
};

ИДЕНТИФИКАТОРЫ ОПЦИИ

Идентификаторы опций идентифицируют опции для кода, который их обрабатывает (функция OptionHandler). Идентификаторы опций относятся к набору опций , в котором они появляются, и поэтому могут повторно использоваться в разных наборах опций (однако см. КРАТКИЕ ОПЦИИ ниже). Общепринятым соглашением является нумерация идентификаторов опций с 1000, однако можно использовать любое число > 128. Параметры псевдонима можно создать, используя один и тот же идентификатор параметра с разными именами параметров.

КОРОТКИЕ ВАРИАНТЫ

В отличие от getopt_long(3), ParseArgs() не принимает отдельную строку, определяющую список коротких символов опций. Скорее, любой параметр, значение идентификатора которого попадает в диапазон графических символов ASCII, позволит использовать этот символ в качестве короткого параметра.

ParseArgs() требует, чтобы короткие символы опций были уникальными во всех наборах опций. По этой причине не рекомендуется использовать короткие параметры для любых наборов параметров, которые используются в разных программах, из-за значительной вероятности коллизий. Символы коротких параметров можно повторно использовать в одном наборе параметров , чтобы можно было создавать псевдонимы длинных имен параметров.

ОПЦИЯ ПОМОЩИ

Каждый набор параметров содержит строку OptionHelp , описывающую назначение и синтаксис связанных параметров. Эти строки используются функцией PrintOptionHelp() для генерации информации об использовании опции.

По соглашению строки справки по опциям состоят из примера синтаксиса, за которым следует текстовое описание опции. Если опция имеет короткую версию или псевдоним, она указывается перед основным длинным именем. Для единообразия строки синтаксиса имеют отступ 2 пробела, а строки описания — 7 пробелов. За описанием каждой опции, включая последнюю, следует одна пустая строка.

Например:

static const char *const gToolOptionHelp =
    "  --listen\n"
    "       Listen and respond to requests sent from another node.\n"
    "\n"
    "  --length \n"
    "       Send requests with the specified number of bytes in the payload.\n"
    "\n"
    "  --num, --count \n"
    "       Send the specified number of requests and exit.\n"
    "\n"
    "  -d, --debug []\n"
    "       Set debug logging to the given level. (Default: 1)\n"
    "\n"
    "  -h, --help\n"
    "       Print help information.\n"
    "\n";

ОПЦИЯ ГРУПП ПОМОЩИ

Наборы параметров содержат строку HelpGroupName , которая используется для группировки параметров в выводе справки. Функция PrintOptionHelp() использует HelpGroupName в качестве заголовка раздела в сгенерированных выходных данных об использовании. Если несколько наборов OptionSet имеют одинаковое имя HelpGroupName, PrintOptionHelp() распечатает справку по опциям для разных наборов OptionSet вместе под общим заголовком раздела.

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

ParseArgs

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[]
)

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Проанализируйте набор аргументов из именованной переменной среды.

ParseArgsFromEnvVar() считывает именованную переменную среды и передает значение в ParseArgsFromString() для анализа. Если переменная среды не установлена, функция ничего не делает.

Подробности
Параметры
[in] progName
Имя программы или контекст, в котором анализируются аргументы. Эта строка будет использоваться для префикса сообщений об ошибках и предупреждений.
[in] varName
Имя переменной среды.
[in] optSets
Список указателей на структуры OptionSet , определяющие допустимые параметры. Предоставленный список должен заканчиваться NULL.
[in] nonOptArgHandler
Указатель на функцию, которая будет вызвана после завершения анализа параметров с оставшимися аргументами, не являющимися параметрами. Функция вызывается независимо от того, остались ли какие-либо аргументы. Если передан NULL, ParseArgs() сообщит об ошибке, если присутствуют какие-либо аргументы, не являющиеся опциями.
[in] ignoreUnknown
Если это правда, молча игнорируйте любые нераспознанные параметры.
Возврат
true , если все параметры и аргументы, не являющиеся параметрами, были проанализированы успешно или если указанная переменная среды не установлена; false если опция не распознана, если одна из функций-обработчиков завершилась неудачно (т. е. вернула значение false) или если произошла внутренняя ошибка.

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[]
)

ParseArgsFromEnvVar

bool ParseArgsFromEnvVar(
  const char *progName,
  const char *varName,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

РазборArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Анализ набора аргументов из заданной строки.

ParseArgsFromString() разбивает заданную строку ( argStr ) на набор аргументов и анализирует аргументы с помощью функции ParseArgs().

Подробности
Параметры
[in] progName
Имя программы или контекст, в котором анализируются аргументы. Эта строка будет использоваться для префикса сообщений об ошибках и предупреждений.
[in] argStr
Строка, содержащая параметры и аргументы для анализа.
[in] optSets
Список указателей на структуры OptionSet , определяющие допустимые параметры. Предоставленный список должен заканчиваться NULL.
[in] nonOptArgHandler
Указатель на функцию, которая будет вызвана после завершения анализа параметров с оставшимися аргументами, не являющимися параметрами. Функция вызывается независимо от того, остались ли какие-либо аргументы. Если передан NULL, ParseArgs() сообщит об ошибке, если присутствуют какие-либо аргументы, не являющиеся опциями.
[in] ignoreUnknown
Если это правда, молча игнорируйте любые нераспознанные параметры.
Возврат
true , если все параметры и аргументы, не являющиеся параметрами, были проанализированы успешно; false если опция не распознана, если одна из функций-обработчиков завершилась неудачно (т. е. вернула значение false) или если произошла внутренняя ошибка.

Синтаксис входных строк аналогичен синтаксису команд оболочки Unix, но с упрощенной схемой кавычек. Конкретно:

  • Аргументы разделяются пробелами, если только пробелы не заключены в кавычки или не экранированы.
  • Обратная косая черта экранирует следующий символ, поэтому он воспринимается как обычный символ. Сама обратная косая черта удаляется.
  • Одинарные или двойные кавычки начинают/заканчивают подстроки в кавычках. В подстроке единственными специальными символами являются обратная косая черта, которая экранирует следующий символ, и соответствующая конечная кавычка. Начальные/конечные символы кавычек удаляются.

Например:

--listen --count 10 --sw-version '1.0 (DEVELOPMENT)' "--hostname=nest.com"

РазборArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

РазборArgsFromString

bool ParseArgsFromString(
  const char *progName,
  const char *argStr,
  OptionSet *optSets[]
)

ParseBoolean

bool ParseBoolean(
  const char *str,
  bool & output
)

Разобрать строку как логическое значение.

Эта функция принимает следующие входные значения (без учета регистра): «истина», «да», «t», «y», «1», «ложь», «нет», «f», «n», « 0".

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую значение для анализа.
[out] output
Ссылка на хранилище для логического значения, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

ParseFabricId

bool ParseFabricId(
  const char *str,
  uint64_t & fabricId,
  bool allowReserved
)

Разберите идентификатор ткани Weave в текстовой форме.

Функция ParseFabricId() принимает 64-битный идентификатор структуры, заданный в шестнадцатеричном формате, с начальным «0x» или без него.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, содержащую идентификатор структуры для анализа.
[out] output
Ссылка на lvalue uint64_t, в котором проанализированное значение будет сохранено в случае успеха.
[in] allowReserved
Если это правда, разрешить анализ идентификаторов структуры в зарезервированном диапазоне.
Возврат
true, если значение было успешно проанализировано; ложь, если нет.

РазборHexString

bool ParseHexString(
  const char *hexStr,
  uint32_t strLen,
  uint8_t *outBuf,
  uint32_t outBufSize,
  uint32_t & outDataLen
)

Разобрать строку байтов, заданную в шестнадцатеричной форме.

ParseHexString() ожидает, что входные данные будут в виде пар шестнадцатеричных цифр (в верхнем или нижнем регистре). Шестнадцатеричные пары могут быть разделены любым из следующих символов: двоеточие, точка с запятой, запятая, точка или тире. Кроме того, игнорируются пробельные символы в любом месте входной строки.

Подробности
Параметры
[in] hexStr
Указатель на строку для анализа.
[in] strLen
Количество символов в hexStr для анализа.
[in] outBuf
Указатель на буфер, в котором будут храниться байты синтаксического анализа.
[in] outBufSize
Размер буфера, на который указывает outBuf .
[out] outDataLen
Ссылка на целое число, которое получит общее количество проанализированных байтов. Если outBuf недостаточно велик для хранения заданного количества байтов, outDataLen будет присвоено значение UINT32_MAX.
Возврат
true, если значение было успешно проанализировано; false, если входные данные искажены или если outBuf слишком мал.

Разобрать IP-адрес

bool ParseIPAddress(
  const char *str,
  IPAddress & output
)

Разберите IP-адрес в текстовой форме.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, содержащую адрес для анализа.
[out] output
Ссылка на объект IPAddress, в котором проанализированное значение будет сохранено в случае успеха.
Возврат
true, если значение было успешно проанализировано; ложь, если нет.

Парсеинт

bool ParseInt(
  const char *str,
  uint64_t & output,
  int base
)

Разберите и попытайтесь преобразовать строку в 64-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 64-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
[in] base
База, согласно которой строка должна интерпретироваться и анализироваться. Если 0 или 16, строка может быть шестнадцатеричной и иметь префикс «0x». В противном случае 0 подразумевается как 10, если только не встречается ведущий 0, в котором подразумевается 8.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  uint32_t & output,
  int base
)

Разберите и попытайтесь преобразовать строку в 32-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 32-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
[in] base
База, согласно которой строка должна интерпретироваться и анализироваться. Если 0 или 16, строка может быть шестнадцатеричной и иметь префикс «0x». В противном случае 0 подразумевается как 10, если только не встречается ведущий 0, в котором подразумевается 8.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  int32_t & output,
  int base
)

Разберите и попытайтесь преобразовать строку в 32-битное целое число со знаком, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 32-битного целого числа со знаком, в которое будет сохранено проанализированное значение в случае успеха.
[in] base
База, согласно которой строка должна интерпретироваться и анализироваться. Если 0 или 16, строка может быть шестнадцатеричной и иметь префикс «0x». В противном случае 0 подразумевается как 10, если только не встречается ведущий 0, в котором подразумевается 8.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  uint64_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 64-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 64-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  uint32_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 32-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 32-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  int32_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 32-битное целое число со знаком, применяя соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 32-битного целого числа со знаком, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  uint16_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 16-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 16-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  int16_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 16-битное целое число со знаком, применяя соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 16-битного целого числа со знаком, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

Парсеинт

bool ParseInt(
  const char *str,
  uint8_t & output
)

Разберите и попытайтесь преобразовать строку, интерпретируемую как десятичное значение, в 8-битное целое число без знака, применив соответствующую интерпретацию на основе базового параметра.

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, представляющую целое число для анализа.
[out] output
Ссылка на хранилище 8-битного целого числа без знака, в которое будет сохранено проанализированное значение в случае успеха.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

ParseNodeId

bool ParseNodeId(
  const char *str,
  uint64_t & nodeId
)

Разберите идентификатор узла Weave в текстовой форме.

Функция ParseNodeId() принимает либо 64-битный идентификатор узла, заданный в шестнадцатеричном формате (с начальным «0x» или без него), либо слова «any» или «all», которые интерпретируются как означающие любой идентификатор узла (0xFFFFFFFFFFFFFFFF). .

Подробности
Параметры
[in] str
Указатель на строку C, завершающуюся NULL, содержащую идентификатор узла для анализа.
[out] output
Ссылка на lvalue uint64_t, в котором проанализированное значение будет сохранено в случае успеха.
Возврат
true, если значение было успешно проанализировано; ложь, если нет.

ParseSubnetId

bool ParseSubnetId(
  const char *str,
  uint16_t & subnetId
)

Разберите и попытайтесь преобразовать строку в 16-битный беззнаковый идентификатор подсети, интерпретируя строку как шестнадцатеричную.

Подробности
Параметры
[in] str
Указатель на строку C с завершающим нулем, представляющую идентификатор подсети в шестнадцатеричном формате для анализа.
[in,out] subnetId
Ссылка на хранилище 16-битного беззнакового целого числа, в котором в случае успеха будет сохранено проанализированное значение идентификатора подсети.
Возврат
правда при успехе; в противном случае — false в случае неудачи.

PrintOptionСправка

void PrintOptionHelp(
  OptionSet *optSets[],
  FILE *s
)

Распечатайте текст справки для указанного списка параметров в поток.

Подробности
Параметры
[in] optSets
Список указателей на структуры OptionSet , содержащие текст справки для печати.
[in] s
Поток FILE, в который должен быть напечатан текст справки.

PutStringWithBlankLine

void PutStringWithBlankLine(
  FILE *s,
  const char *str
)

PutStringWithNewLine

void PutStringWithNewLine(
  FILE *s,
  const char *str
)

СплитАргс

int32_t SplitArgs(
  char *argStr,
  char **& argList,
  char *initialArg
)