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 restantes e não opcionais.
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 para a função usada para mostrar erros que ocorrem durante a análise do argumento.
gActiveOptionSets = NULL
A lista de OptionSets transmitida para a chamada ParseArgs() ativa no momento.

remotas

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
Mostra 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 de estilo de linha de comando, chamando funções de processamento para processar cada opção e argumento de não 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 código de tecido do Weave em formato de texto.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Analisa uma string de bytes fornecidos 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 apropriada 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 apropriada 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 apropriada com base no parâmetro base.
ParseInt(const char *str, uint64_t & output)
bool
Analisa e tenta converter uma string interpretada como 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 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 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 formato 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
Mostra o texto de ajuda para 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

Aulas

nl::ArgParser::HelpOptions

OptionSet comum para gerenciar 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 restantes e não opcionais.

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 para a função usada para mostrar erros que ocorrem durante a análise do argumento.

Os aplicativos precisam chamar PrintArgError() para informar erros nas funções de processamento de argumentos opcionais e não opcionais, 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 transmitida para a chamada ParseArgs() ativa no momento.

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

remotas

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,
  ...
)

Mostra 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 devem chamar por meio do 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 de estilo de linha de comando, chamando funções de processamento para processar cada opção e argumento de não opção.

ParseArgs() usa uma lista de argumentos (argv) e os analisa de acordo com um conjunto de definições de opção fornecidas. A função oferece suporte a opções longas (opt) e curtas (-o) e implementa a mesma sintaxe de opção que a função do 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 elemento de matriz second (argv[1]). O 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 de opções for concluída com os argumentos não option restantes . A função é chamada mesmo que haja argumentos mantidos. Se um NULL for transmitido, ParseArgs() vai informar um erro caso haja argumentos de não opção.
[in] ignoreUnknown
Se for verdadeiro, ignore silenciosamente todas as opções não reconhecidas.
Retorna
true se todas as opções e argumentos não opcionais forem analisados; false se uma opção não foi reconhecida ou se uma das funções do gerenciador falhou (ou seja, retornou "falso").

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ção e uma função de gerenciador. ParseArgs() processa argumentos de opção na ordem determinada, chamando a respectiva função do gerenciador para cada opção reconhecida. Depois que todas as opções forem analisadas, uma função gerenciadora não opcional (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, junto com um ponteiro para uma função de gerenciador que é chamada quando uma das opções associadas é encontrada. Os conjuntos de opções também contêm um texto de ajuda que descreve a sintaxe e a finalidade de cada opção (consulte a AJUDA DE OPÇÕES 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: cada um pode inicializar uma instância do próprio struct OptionSet, por exemplo, como um valor global estático, ou uma subclasse OptionSetBase, e fornecer 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 DA OPÇÃO

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 de número inteiro que é usado para identificar a opção e se a opção espera/permite um argumento. O fim da matriz de opções é sinalizado por um campo "Nome NULL". 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 DAS OPÇÕES

Os IDs de opção identificam opções para o código que as processa (a função OptionHandler). Os códigos de opção são relativos ao OptionSet em que aparecem e, portanto, podem ser reutilizados em diferentes OptionSets (no entanto, confira "SHORT OPTIONS" abaixo). A convenção comum é começar a numerar os IDs de opção em 1.000, porém qualquer número maior que 128 pode ser usado. As opções de alias podem ser criadas usando o mesmo código de opção com nomes de opção diferentes.

OPÇÕES CURTAS

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

ParseArgs() exige que os caracteres curtos de opção sejam exclusivos em todos os OptionSets. Por isso, o uso de opções curtas não é recomendado para OptionSets compartilhados entre programas, devido à chance significativa 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 do alias.

AJUDA DA OPÇÃO

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 da 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, ele será fornecido 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 segue 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 DAS 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, o PrintOptionHelp() exibirá a ajuda da opção para os diferentes OptionSets juntos 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 para ParseArgsFromString() para análise. Se a variável de ambiente não for definida, a função não fará 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 de opções for concluída com os argumentos não option restantes . A função é chamada mesmo que haja argumentos mantidos. Se um NULL for transmitido, ParseArgs() vai informar um erro caso haja argumentos de não opção.
[in] ignoreUnknown
Se for verdadeiro, ignore silenciosamente todas as opções não reconhecidas.
Retorna
true se todas as opções e argumentos não opcionais forem analisados com êxito ou se a variável de ambiente especificada não estiver definida; false se uma opção não foi reconhecida, se uma das funções de gerenciador falhou (ou seja, retornou um valor falso) ou se ocorreu 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 uma 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 de opções for concluída com os argumentos não option restantes . A função é chamada mesmo que haja argumentos mantidos. Se um NULL for transmitido, ParseArgs() vai informar um erro caso haja argumentos de não opção.
[in] ignoreUnknown
Se for verdadeiro, ignore silenciosamente todas as opções não reconhecidas.
Retorna
true se todas as opções e argumentos não opcionais forem analisados; false se uma opção não for reconhecida, se uma das funções do gerenciador falhar (ou seja, retornar falso) ou se ocorrer um erro interno.

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

  • Os argumentos são delimitados por espaços em branco, a menos que esses espaços estejam entre aspas ou com escape.
  • Uma barra invertida escapa o caractere a seguir, fazendo com que ele seja tratado como um caractere normal. A própria barra invertida é removida.
  • As aspas simples ou duplas começam/terminam substrings entre aspas. Em uma substring, os únicos caracteres especiais são a barra invertida, que faz o escape do próximo caractere e da aspas final correspondente. Os caracteres de aspas de início/término 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 de um booleano em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

ParseFabricId

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

Analisa um código de tecido do Weave em formato de texto.

A função ParseFabricId() aceita um ID de tecido 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 em caso de êxito.
[in] allowReserved
Se verdadeiro, permite a análise de IDs de tecido no intervalo reservado.
Retorna
verdadeiro se o valor tiver sido analisado com êxito; caso contrário, será falso.

ParseHexString

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

Analisa uma string de bytes fornecidos 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, caracteres de espaço 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 hexadecimal que serão analisados.
[in] outBuf
Um ponteiro para um buffer no qual os bytes de análise serão armazenados.
[in] outBufSize
O tamanho do buffer apontado 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 determinado número de bytes, outDataLen será definido como UINT32_MAX.
Retorna
"true" se o valor foi analisado; "false" se os dados de entrada são malformados ou se outBuf é 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 que contém o endereço a ser analisado.
[out] output
Uma referência a um objeto IPAddress em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro se o valor tiver sido analisado com êxito; caso contrário, será falso.

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 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 em que o valor analisado será armazenado em caso de êxito.
[in] base
A base de acordo com a qual a string precisa ser interpretada e analisada. Se 0 ou 16, a string pode ser hexadecimal e prefixada com "0x". Caso contrário, o 0 estará implícito como 10, a menos que um 0 inicial seja encontrado em que 8 esteja implícito.
Retorna
verdadeiro em caso de sucesso; caso contrário, 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 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 em que o valor analisado será armazenado em caso de êxito.
[in] base
A base de acordo com a qual a string precisa ser interpretada e analisada. Se 0 ou 16, a string pode ser hexadecimal e prefixada com "0x". Caso contrário, o 0 estará implícito como 10, a menos que um 0 inicial seja encontrado em que 8 esteja implícito.
Retorna
verdadeiro em caso de sucesso; caso contrário, 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 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 32 bits em que o valor analisado será armazenado em caso de êxito.
[in] base
A base de acordo com a qual a string precisa ser interpretada e analisada. Se 0 ou 16, a string pode ser hexadecimal e prefixada com "0x". Caso contrário, o 0 estará implícito como 10, a menos que um 0 inicial seja encontrado em que 8 esteja implícito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como 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 em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como 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 em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, 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 de um número inteiro assinado de 32 bits em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, 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 em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, 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 em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

ParseInt

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

Analisa e tenta converter uma string interpretada como 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 em que o valor analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

ParseNodeId

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

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

A função ParseNodeId() aceita um ID de nó de 64 bits fornecido em formato hexadecimal (com ou sem um "0x" inicial) ou as palavras "qualquer" ou "todos", que são interpretadas como o significado de Qualquer ID de nó (0xFFFFFFFFFFFFFF).

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 em caso de êxito.
Retorna
verdadeiro se o valor tiver sido analisado com êxito; caso contrário, será falso.

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 com terminação NULL que representa o ID da sub-rede, formatado como hexadecimal, para análise.
[in,out] subnetId
Uma referência ao armazenamento de um número inteiro não assinado de 16 bits em que o valor do ID da sub-rede analisado será armazenado em caso de êxito.
Retorna
verdadeiro em caso de sucesso; caso contrário, falso em caso de falha.

PrintOptionHelp

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

Mostra o texto de ajuda para 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 deve 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
)