nl::ArgParser

Resumo

Enumerações

OptionArgumentType enum
Define os requisitos de argumento para uma opção de linha de comando.

Typedefs

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Uma função que pode ser chamada para lidar com quaisquer argumentos de linha de comando que não sejam opções restantes.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Uma função que pode ser chamada para lidar com um conjunto de opções de linha de comando.

Variáveis

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Ponteiro da função usada para mostrar erros que ocorrem durante a análise do argumento.
gActiveOptionSets = NULL
A lista de OptionSets passada para a chamada ParseArgs() ativa no momento.

Funções

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
Exibe uma mensagem de erro associada à análise do argumento.
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
Analisa um conjunto de argumentos em estilo de linha de comando, chamando funções de manipulação para processar cada opção e argumento que não seja de opção.
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
Analisa um conjunto de argumentos de uma variável de ambiente nomeada.
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
Analisa um conjunto de argumentos de uma determinada string.
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
Analisa uma string como um valor booleano.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Analisa um ID de tecido do Weave em forma de texto.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Analisa uma string de bytes fornecida em formato hexadecimal.
ParseIPAddress(const char *str, IPAddress & output)
bool
Analisa um endereço IP em formato de texto.
ParseInt(const char *str, uint64_t & output, int base)
bool
Analisa e tenta converter uma string em um número inteiro não assinado de 64 bits, aplicando a interpretação adequada com base no parâmetro base.
ParseInt(const char *str, uint32_t & output, int base)
bool
Analisa e tenta converter uma string em um número inteiro não assinado de 32 bits, aplicando a interpretação adequada com base no parâmetro base.
ParseInt(const char *str, int32_t & output, int base)
bool
Analisa e tenta converter uma string em um número inteiro assinado de 32 bits, aplicando a interpretação adequada com base no parâmetro base.
ParseInt(const char *str, uint64_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 64 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseInt(const char *str, uint32_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 32 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseInt(const char *str, int32_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro assinado de 32 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseInt(const char *str, uint16_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 16 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseInt(const char *str, int16_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro assinado de 16 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseInt(const char *str, uint8_t & output)
bool
Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 8 bits, aplicando a interpretação apropriada com base no parâmetro base.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Analisa um ID de nó do Weave em forma de texto.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Analisa e tenta converter uma string em um ID de sub-rede não assinado de 16 bits, interpretando a string como hexadecimal.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Exibe o texto de ajuda de uma lista especificada de opções em um stream.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Classes

nl::ArgParser::HelpOptions

OptionSet comum para lidar com opções informativas (ajuda, versão).

nl::ArgParser::OptionSetBase

Um OptionSet em que o gerenciador é uma função virtual.

Estruturas

nl::ArgParser::OptionDef

Define uma opção de linha de comando.

nl::ArgParser::OptionSet

Define um grupo de opções de linha de comando reutilizáveis e relacionadas de maneira lógica.

Enumerações

OptionArgumentType

 OptionArgumentType

Define os requisitos de argumento para uma opção de linha de comando.

Typedefs

NonOptionArgHandlerFunct

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

Uma função que pode ser chamada para lidar com quaisquer argumentos de linha de comando que não sejam opções restantes.

OptionHandlerFunct

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

Uma função que pode ser chamada para lidar com um conjunto de opções de linha de comando.

Variáveis

PrintArgError

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

Ponteiro da função usada para mostrar erros que ocorrem durante a análise do argumento.

Os aplicativos precisam chamar PrintArgError() para relatar erros em suas funções de tratamento de argumentos opcionais e sem opção, em vez de imprimir diretamente em stdout/stderr.

O padrão é um ponteiro para a função DefaultPrintArgError().

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

A lista de OptionSets passada para a chamada ParseArgs() ativa no momento.

Esse valor será NULL quando nenhuma chamada para ParseArgs() estiver em andamento.

Funções

CountAllOptions

size_t CountAllOptions(
  OptionSet *optSets[]
)

CountAllOptions

size_t CountAllOptions(
  OptionSet **optSets
)

CountOptionSets

size_t CountOptionSets(
  OptionSet *optSets[]
)

CountOptionSets

size_t CountOptionSets(
  OptionSet **optSets
)

DefaultPrintArgError

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

Exibe uma mensagem de erro associada à análise do argumento.

Função padrão usada para mostrar mensagens de erro que surgem devido à análise de argumentos.

Detalhes
Parâmetros
[in] msg
A mensagem a ser impressa.

Os aplicativos precisam chamar o ponteiro da função PrintArgError em vez de chamar essa função diretamente.

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
)

Analisa um conjunto de argumentos em estilo de linha de comando, chamando funções de manipulação para processar cada opção e argumento que não seja de opção.

ParseArgs() recebe uma lista de argumentos (argv) e os analisa de acordo com um conjunto de definições de opção fornecidas. A função suporta as opções longas (opt) e curtas (-o) e implementa a mesma sintaxe de opção que a função GNU getopt_long(3).

Detalhes
Parâmetros
[in] progName
O nome do programa ou contexto em que os argumentos estão sendo analisados. Essa string será usada para prefixar mensagens de erro e avisos.
[in] argc
O número de argumentos a serem analisados mais 1.
[in] argv
Uma matriz de strings de argumentos a serem analisadas. O comprimento da matriz precisa ser 1 maior que o valor especificado para argc, e argv[argc] precisa ser definido como NULL. A análise do argumento começa com o segundo elemento da matriz (argv[1]); do elemento 0 é ignorado.
[in] optSets
Uma lista de ponteiros para estruturas OptionSet que definem as opções legais. A lista fornecida precisa ser encerrada com um NULL.
[in] nonOptArgHandler
Um ponteiro para uma função que será chamada quando a análise da opção for concluída com quaisquer argumentos não opcionais restantes . A função é chamada independentemente de algum argumento permanecer. Se um NULL for transmitido, ParseArgs() vai informar um erro se algum argumento que não seja a opção estiver presente.
[in] ignoreUnknown
Se verdadeiro, ignora silenciosamente as opções não reconhecidas.
Retornos
true se todas as opções e argumentos que não são de opção foram analisados com sucesso; false se uma opção não for reconhecida ou se uma das funções do gerenciador falhar (ou seja, retornar "false").

As definições de opção são transmitidas para ParseArgs() como uma matriz de estruturas OptionSet (optSets). Cada OptionSet contém uma matriz de definições de opções e uma função de gerenciador. ParseArgs() processa argumentos de opção na ordem indicada, chamando a respectiva função de gerenciador para cada opção reconhecida. Depois que todas as opções forem analisadas, uma função de gerenciador separada sem opção (nonOptArgHandler) será chamada uma vez para processar os argumentos restantes.

CONJUNTOS DE OPÇÕES

Um OptionSet contém um conjunto de definições de opções e um ponteiro para uma função do gerenciador que será chamada quando uma das opções associadas for encontrada. Os conjuntos de opções também contêm texto de ajuda que descreve a sintaxe e a finalidade de cada opção (consulte a AJUDA DA OPÇÃO abaixo). Os conjuntos de opções foram projetados para permitir a criação de coleções reutilizáveis de opções relacionadas. Isso simplifica o esforço necessário para manter vários aplicativos que aceitam opções semelhantes (por exemplo, aplicativos de teste).

Há dois padrões para definir OptionSetsone e inicializar uma instância do próprio struct OptionSet. Por exemplo: como um global estático ou uma subclasse OptionSetBase e forneça um construtor. O último usa uma função HandleOption() virtual pura para delegar o processamento de opções à subclasse.

As listas de OptionSets são transmitidas para a função ParseArgs() como uma matriz de ponteiros terminada em NULL. E.g.:

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))
    {
        ...
    }
}

DEFINIÇÕES DE OPÇÕES

As opções são definidas usando a estrutura OptionDef. As definições de opção são organizadas como uma matriz de elementos OptionDef, em que cada elemento contém o nome da opção, um código inteiro usado para identificar a opção e se a opção espera/permite um argumento. O fim da matriz de opções é indicado por um campo NULL Name. E.g.:

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 }
};

IDS DE OPÇÕES

Os IDs de opção identificam opções para o código que as processa (a função OptionHandler). Os IDs das opções são relativos ao OptionSet em que aparecem e, portanto, podem ser reutilizados em diferentes OptionSets. No entanto, confira as OPÇÕES BREVES abaixo. Uma convenção comum é numerar os IDs das opções em 1.000, porém qualquer número > 128 pode ser usado. As opções de alias podem ser criadas usando o mesmo ID de opção com nomes de opções diferentes.

OPÇÕES SHORTS

Ao contrário de getopt_long(3), ParseArgs() não usa uma string separada para especificar a lista de caracteres de opção curta. Em vez disso, qualquer opção cujo valor do ID esteja no intervalo de caracteres gráficos ASCII permitirá que esse caractere seja usado como uma opção curta.

ParseArgs() requer que caracteres de opção curtos sejam exclusivos em todos os OptionSets. Por isso, o uso de opções curtas não é recomendado para OptionSets compartilhados entre programas devido à grande chance de colisões. Os caracteres de opções curtas podem ser reutilizados em um único OptionSet para permitir a criação de nomes de opção longos de alias.

AJUDA COM OPÇÕES

Cada OptionSet contém uma string OptionHelp que descreve a finalidade e a sintaxe das opções associadas. Essas strings são usadas pela função PrintOptionHelp() para gerar informações de uso da opção.

Por convenção, as strings de ajuda de opção consistem em um exemplo de sintaxe seguido por uma descrição textual da opção. Se a opção tiver uma versão curta ou um nome de alias, ela será fornecida antes do nome longo principal. Para manter a consistência, as linhas de sintaxe são recuadas com dois espaços, enquanto as linhas de descrição são recuadas com sete espaços. Uma única linha em branco após a descrição de cada opção, incluindo a última.

E.g.:

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";

GRUPOS DE AJUDA DE OPÇÕES

OptionSets contêm uma string HelpGroupName que é usada para agrupar opções na saída de ajuda. A função PrintOptionHelp() usa o HelpGroupName como um título de seção na saída de uso gerada. Se vários OptionSets tiverem o mesmo HelpGroupName, PrintOptionHelp() imprimirá a ajuda da opção para os diferentes OptionSets em um título de seção comum.

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
)

Analisa um conjunto de argumentos de uma variável de ambiente nomeada.

ParseArgsFromEnvVar() lê uma variável de ambiente nomeada e transmite o valor a ParseArgsFromString() para análise. Se a variável de ambiente não estiver definida, a função não vai fazer nada.

Detalhes
Parâmetros
[in] progName
O nome do programa ou contexto em que os argumentos estão sendo analisados. Essa string será usada para prefixar mensagens de erro e avisos.
[in] varName
O nome da variável de ambiente.
[in] optSets
Uma lista de ponteiros para estruturas OptionSet que definem as opções legais. A lista fornecida precisa ser encerrada com um NULL.
[in] nonOptArgHandler
Um ponteiro para uma função que será chamada quando a análise da opção for concluída com quaisquer argumentos não opcionais restantes . A função é chamada independentemente de algum argumento permanecer. Se um NULL for transmitido, ParseArgs() vai informar um erro se algum argumento que não seja a opção estiver presente.
[in] ignoreUnknown
Se verdadeiro, ignora silenciosamente as opções não reconhecidas.
Retornos
true se todas as opções e argumentos que não são de opção foram analisados ou se a variável de ambiente especificada não está definida; false se uma opção não for reconhecida, se uma das funções do gerenciador falhar (por exemplo, retornar "false") ou se tiver ocorrido um erro interno.

ParseArgsFromEnvVar

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

ParseArgsFromEnvVar

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

ParseArgsFromString

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

Analisa um conjunto de argumentos de uma determinada string.

ParseArgsFromString() divide determinada string (argStr) em um conjunto de argumentos e analisa os argumentos usando a função ParseArgs().

Detalhes
Parâmetros
[in] progName
O nome do programa ou contexto em que os argumentos estão sendo analisados. Essa string será usada para prefixar mensagens de erro e avisos.
[in] argStr
Uma string contendo opções e argumentos a serem analisados.
[in] optSets
Uma lista de ponteiros para estruturas OptionSet que definem as opções legais. A lista fornecida precisa ser encerrada com um NULL.
[in] nonOptArgHandler
Um ponteiro para uma função que será chamada quando a análise da opção for concluída com quaisquer argumentos não opcionais restantes . A função é chamada independentemente de algum argumento permanecer. Se um NULL for transmitido, ParseArgs() vai informar um erro se algum argumento que não seja a opção estiver presente.
[in] ignoreUnknown
Se verdadeiro, ignora silenciosamente as opções não reconhecidas.
Retornos
true se todas as opções e argumentos que não são de opção foram analisados com sucesso; false se uma opção não for reconhecida, se uma das funções do gerenciador falhar (por exemplo, retornar "false") ou se tiver ocorrido um erro interno.

A sintaxe das strings de entrada é semelhante à sintaxe de comando do shell do Unix, mas com um esquema de aspas simplificado. Especificamente:

  • Os argumentos são delimitados por espaços em branco, a menos que eles fiquem entre aspas ou com escape.
  • Uma barra invertida faz o escape do seguinte caractere, fazendo com que ele seja tratado como um caractere normal. A própria barra invertida é removida.
  • Substrings com aspas simples ou duplas começam/terminam. Dentro de uma substring, os únicos caracteres especiais são uma barra invertida, que escapa do próximo caractere, e as aspas finais correspondentes. Os caracteres de início/fim das aspas são removidos.

E.g.:

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

ParseArgsFromString

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

ParseArgsFromString

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

ParseBoolean

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

Analisa uma string como um valor booleano.

Essa função aceita os seguintes valores de entrada (não diferencia maiúsculas de minúsculas): "true", "yes", "t", "y", "1", "false", "no", "f", "n" e "0".

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o valor a ser analisado.
[out] output
Uma referência ao armazenamento para um booleano em que o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseFabricId

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

Analisa um ID de tecido do Weave em forma de texto.

A função ParseFabricId() aceita um ID de malha de 64 bits fornecido em formato hexadecimal, com ou sem um "0x" inicial.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL contendo o ID da malha a ser analisada.
[out] output
Uma referência a um lvalue uint64_t em que o valor analisado será armazenado após a conclusão.
[in] allowReserved
Se verdadeiro, permite a análise de IDs de tecido no intervalo reservado.
Retornos
verdadeiro se o valor tiver sido analisado; falso, se não for.

ParseHexString

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

Analisa uma string de bytes fornecida em formato hexadecimal.

ParseHexString() espera que a entrada esteja na forma de pares de dígitos hexadecimais (maiúsculas ou minúsculas). Os pares hexadecimais podem ser separados por qualquer um dos seguintes caracteres: dois-pontos, ponto e vírgula, vírgula, ponto ou traço. Além disso, os espaços em branco em qualquer lugar da string de entrada são ignorados.

Detalhes
Parâmetros
[in] hexStr
Um ponteiro para a string a ser analisada.
[in] strLen
O número de caracteres em hexStr a serem analisados.
[in] outBuf
Um ponteiro para um buffer em que os bytes de análise serão armazenados.
[in] outBufSize
O tamanho do buffer indicado por outBuf.
[out] outDataLen
Uma referência a um número inteiro que receberá o número total de bytes analisados. Caso o outBuf não seja grande o suficiente para conter o número determinado de bytes, outDataLen será definido como UINT32_MAX.
Retornos
verdadeiro se o valor tiver sido analisado; "false" se os dados de entrada forem malformados ou se outBuf for muito pequeno.

ParseIPAddress

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

Analisa um endereço IP em formato de texto.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL contendo o endereço a ser analisado.
[out] output
Uma referência a um objeto IPAddress em que o valor analisado será armazenado após a conclusão.
Retornos
verdadeiro se o valor tiver sido analisado; falso, se não for.

ParseInt

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

Analisa e tenta converter uma string em um número inteiro não assinado de 64 bits, aplicando a interpretação adequada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 64 bits para o qual o valor analisado será armazenado após a conclusão.
[in] base
A base de acordo com a qual a string deve ser interpretada e analisada. Se for 0 ou 16, a string poderá ser hexadecimal e prefixada com "0x". Caso contrário, um 0 está implícito como 10, a menos que um 0 inicial seja encontrado em que o 8 esteja implícito.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string em um número inteiro não assinado de 32 bits, aplicando a interpretação adequada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 32 bits para o qual o valor analisado será armazenado após a conclusão.
[in] base
A base de acordo com a qual a string deve ser interpretada e analisada. Se for 0 ou 16, a string poderá ser hexadecimal e prefixada com "0x". Caso contrário, um 0 está implícito como 10, a menos que um 0 inicial seja encontrado em que o 8 esteja implícito.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string em um número inteiro assinado de 32 bits, aplicando a interpretação adequada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento para um número inteiro assinado de 32 bits, o qual o valor analisado será armazenado após a conclusão.
[in] base
A base de acordo com a qual a string deve ser interpretada e analisada. Se for 0 ou 16, a string poderá ser hexadecimal e prefixada com "0x". Caso contrário, um 0 está implícito como 10, a menos que um 0 inicial seja encontrado em que o 8 esteja implícito.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 64 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 64 bits para o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 32 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 32 bits para o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro assinado de 32 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento para um número inteiro assinado de 32 bits, o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 16 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 16 bits para o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro assinado de 16 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro assinado de 16 bits para o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como um valor decimal em um número inteiro não assinado de 8 bits, aplicando a interpretação apropriada com base no parâmetro base.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL que representa o número inteiro a ser analisado.
[out] output
Uma referência ao armazenamento de um número inteiro não assinado de 8 bits para o qual o valor analisado será armazenado após a conclusão.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

ParseNodeId

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

Analisa um ID de nó do Weave em forma de texto.

A função ParseNodeId() aceita um ID de nó de 64 bits fornecido em formato hexadecimal (com ou sem um "0x" no início) ou as palavras "any" ou "todos" que são interpretados como o ID de qualquer nó (0xFFFFFFFFFFFFFFFFFF).

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL contendo o ID do nó a ser analisado.
[out] output
Uma referência a um lvalue uint64_t em que o valor analisado será armazenado após a conclusão.
Retornos
verdadeiro se o valor tiver sido analisado; falso, se não for.

ParseSubnetId

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

Analisa e tenta converter uma string em um ID de sub-rede não assinado de 16 bits, interpretando a string como hexadecimal.

Detalhes
Parâmetros
[in] str
Um ponteiro para uma string C terminada em NULL representando o ID da sub-rede, formatado como hexadecimal, para análise.
[in,out] subnetId
Uma referência ao armazenamento para um número inteiro não assinado de 16 bits no qual o valor do ID de sub-rede analisado será armazenado.
Retornos
para o sucesso; caso contrário, será falso em caso de falha.

PrintOptionHelp

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

Exibe o texto de ajuda de uma lista especificada de opções em um stream.

Detalhes
Parâmetros
[in] optSets
Uma lista de ponteiros para estruturas OptionSet que contêm o texto de ajuda a ser mostrado.
[in] s
O fluxo FILE em que o texto de ajuda precisa ser impresso.

PutStringWithBlankLine

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

PutStringWithNewLine

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

SplitArgs

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