nl::ArgParser

Riepilogo

Enumerazioni

OptionArgumentType enum
Definisce i requisiti dell'argomento per un'opzione della riga di comando.

Typedef

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Una funzione che può essere chiamata per gestire gli argomenti della riga di comando rimanenti non di opzione.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Una funzione che può essere chiamata per gestire un insieme di opzioni della riga di comando.

Variabili

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Puntatore alla funzione utilizzato per stampare gli errori che si verificano durante l'analisi degli argomenti.
gActiveOptionSets = NULL
L'elenco di set di opzioni passati alla chiamata ParseArgs() attualmente attiva.

Funzioni

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
Stampa un messaggio di errore associato all'analisi dell'argomento.
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
Analizzare un insieme di argomenti in stile riga di comando, chiamando le funzioni di gestione per elaborare ogni opzione e argomento non opzione.
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
Analizza un insieme di argomenti da una variabile di ambiente denominata.
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
Analizza un insieme di argomenti da una determinata stringa.
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
Analizza una stringa come valore booleano.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Analizza un ID fabric Weave in formato testo.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Analizza una stringa di byte fornita in formato esadecimale.
ParseIPAddress(const char *str, IPAddress & output)
bool
Analizza un indirizzo IP in formato di testo.
ParseInt(const char *str, uint64_t & output, int base)
bool
Analizza e tenta di convertire una stringa in un numero intero senza segno a 64 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint32_t & output, int base)
bool
Analizza e tenta di convertire una stringa in un numero intero senza segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, int32_t & output, int base)
bool
Analizza e tenta di convertire una stringa in un numero intero a 32 bit con segno, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint64_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 64 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint32_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, int32_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint16_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 16 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, int16_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero a 16 bit con segno, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint8_t & output)
bool
Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 8 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Analizza un ID nodo Weave in formato testo.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Analizza e tenta di convertire una stringa in un ID subnet non firmato a 16 bit, interpretando la stringa come esadecimale.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Stampa il testo della guida per un elenco specificato di opzioni di uno stream.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Corsi

nl::ArgParser::HelpOptions

OptionSet comune per la gestione delle opzioni informative (guida, versione).

nl::ArgParser::OptionSetBase

Un elemento OptionSet in cui il gestore è una funzione virtuale.

Structs

nl::ArgParser::OptionDef

Definisce un'opzione della riga di comando.

nl::ArgParser::OptionSet

Definisce un gruppo di opzioni della riga di comando riutilizzabili e correlate logicamente.

Enumerazioni

OptionArgumentType

 OptionArgumentType

Definisce i requisiti dell'argomento per un'opzione della riga di comando.

Typedef

NonOptionArgHandlerFunct

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

Una funzione che può essere chiamata per gestire gli argomenti della riga di comando rimanenti non di opzione.

OptionHandlerFunct

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

Una funzione che può essere chiamata per gestire un insieme di opzioni della riga di comando.

Variabili

PrintArgError

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

Puntatore alla funzione utilizzato per stampare gli errori che si verificano durante l'analisi degli argomenti.

Le applicazioni devono chiamare PrintArgError() per segnalare errori nelle funzioni di gestione dell'argomento opzione e non opzione, anziché stampare direttamente su stdout/stderr.

Il valore predefinito è un puntatore alla funzione DefaultPrintArgError().

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

L'elenco di set di opzioni passati alla chiamata ParseArgs() attualmente attiva.

Questo valore sarà NULL quando non è in corso alcuna chiamata a ParseArgs().

Funzioni

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

Stampa un messaggio di errore associato all'analisi dell'argomento.

Funzione predefinita utilizzata per stampare messaggi di errore generati dall'analisi degli argomenti.

Dettagli
Parametri
[in] msg
Il messaggio da stampare.

Le applicazioni devono chiamare tramite il puntatore della funzione PrintArgError, anziché chiamare questa funzione direttamente.

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
)

Analizzare un insieme di argomenti in stile riga di comando, chiamando le funzioni di gestione per elaborare ogni opzione e argomento non opzione.

ParseArgs() prende un elenco di argomenti (argv) e li analizza in base a un insieme di definizioni di opzioni fornite. La funzione supporta sia l'opzione lunga (opt) che quella breve (-o) e implementa la stessa sintassi dell'opzione della funzione getopt_long(3) di GNU.

Dettagli
Parametri
[in] progName
Il nome del programma o del contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata come prefisso per i messaggi di errore e gli avvisi.
[in] argc
Il numero di argomenti da analizzare, più 1.
[in] argv
Un array di stringhe di argomenti da analizzare. La lunghezza dell'array deve essere maggiore di 1 rispetto al valore specificato per argc e argv[argc] deve essere impostato su NULL. L'analisi degli argomenti inizia con il secondo elemento dell'array (argv[1]); l'elemento 0 viene ignorato.
[in] optSets
Un elenco di puntatori alle strutture OptionSet che definiscono le opzioni legali. L'elenco fornito deve essere terminato con NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà chiamata una volta completata l'analisi delle opzioni con eventuali argomenti non-option rimanenti . La funzione viene richiamata indipendentemente dal fatto che rimangano disponibili o meno gli argomenti. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non-option.
[in] ignoreUnknown
Se impostato su true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e gli argomenti diversi dall'opzione sono stati analizzati correttamente; false se un'opzione non è stata riconosciuta o se una delle funzioni dei gestori ha avuto esito negativo (ad esempio, ha restituito false).

Le definizioni delle opzioni vengono passate a ParseArgs() come array di strutture OptionSet (optSets). Ogni elemento OptionSet contiene un array di definizioni di opzioni e una funzione gestore. ParseArgs() elabora gli argomenti delle opzioni nell'ordine specificato, chiamando la rispettiva funzione gestore per ogni opzione riconosciuta. Una volta analizzate tutte le opzioni, viene chiamata una funzione separata di gestore non opzione (nonOptArgHandler) per elaborare gli eventuali argomenti rimanenti.

SET DI OPZIONE

Un elemento OptionSet contiene un insieme di definizioni di opzioni, oltre a un puntatore a una funzione gestore che verrà richiamata quando verrà rilevata una delle opzioni associate. Gli insiemi di opzioni contengono anche testo di supporto che descrive la sintassi e lo scopo di ciascuna opzione (consulta la Guida per l'opzione di seguito). Gli insiemi di opzioni sono progettati per consentire la creazione di raccolte riutilizzabili di opzioni correlate. Ciò semplifica l'impegno necessario per gestire più applicazioni che accettano opzioni simili (ad es. applicazioni di test).

Esistono due pattern per definire l'elementoOptionSetsone può inizializzare un'istanza dello struct OptionSet stesso, ad esempio come globale statico o come sottoclasse OptionSetBase e fornisce un costruttore. Quest'ultimo utilizza una funzione HandleOption() virtuale puro per delegare la gestione delle opzioni alla sottoclasse.

Gli elenchi di set di opzioni vengono passati alla funzione ParseArgs() come array di puntatori con terminazione 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))
    {
        ...
    }
}

DEFINIZIONI DI OPZIONE

Le opzioni vengono definite utilizzando la struttura OptionDef. Le definizioni delle opzioni sono organizzate come un array di elementi OptionDef, dove ogni elemento contiene: il nome dell'opzione, un ID intero utilizzato per identificare l'opzione e se l'opzione prevede o consente un argomento. La fine dell'array di opzioni è segnalata da un campo Name 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 }
};

ID OPZIONE

Gli ID opzione identificano le opzioni del codice che li gestisce (la funzione OpzioneGestione). Gli ID delle opzioni sono relativi all'OptionSet in cui appaiono e quindi possono essere riutilizzati in diversi set di opzioni (ma vedi OPZIONI BREVE di seguito). La convenzione comune è iniziare a inserire ID delle opzioni di numerazione a partire da 1000, ma qualsiasi numero > È possibile usare 128. Le opzioni di alias possono essere create utilizzando lo stesso ID opzione con nomi di opzioni diversi.

OPZIONI BREVE

A differenza di getopt_long(3), ParseArgs() non prende una stringa separata che specifica l'elenco di caratteri di opzione brevi. Al contrario, qualsiasi opzione il cui valore ID rientra nell'intervallo di caratteri ASCII grafici consentirà di utilizzare quel carattere come opzione breve.

ParseArgs() richiede che i caratteri di opzione brevi siano univoci in tutti i set di opzioni. Per questo motivo, l'uso di opzioni brevi è sconsigliato per gli opzioni condivisi tra i programmi a causa della notevole probabilità di collisioni. I caratteri delle opzioni brevi possono essere riutilizzati all'interno di un singolo OptionSet per consentire la creazione di nomi di opzioni lunghi alias.

GUIDA PER OPZIONE

Ogni elemento OptionSet contiene una stringa OptionHelp che descrive lo scopo e la sintassi delle opzioni associate. Queste stringhe vengono utilizzate dalla funzione PrintOptionHelp() per generare informazioni sull'utilizzo delle opzioni.

Per convenzione, le stringhe della guida per le opzioni sono costituite da un esempio di sintassi seguito da una descrizione testuale dell'opzione. Se l'opzione ha una versione breve o un nome alias, viene inserito prima del nome lungo principale. Per coerenza, le righe di sintassi sono rientrate con 2 spazi, mentre le righe descrittive sono rientrate con 7 spazi. Una singola riga vuota segue ogni descrizione dell'opzione, inclusa l'ultima.

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

GRUPPI DI ASSISTENZA OPZIONE

Gli optional contengono una stringa HelpGroupName che viene utilizzata per raggruppare le opzioni nell'output della guida. La funzione PrintOptionHelp() utilizza il valore HelpGroupName come titolo della sezione nell'output di utilizzo generato. Se più opzioni hanno lo stesso HelpGroupName, PrintOptionHelp() stampa la guida per le opzioni diverse con un titolo di sezione comune.

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
)

Analizza un insieme di argomenti da una variabile di ambiente denominata.

ParseArgsFromEnvVar() legge una variabile di ambiente denominata e passa il valore a ParseArgsFromString() per l'analisi. Se la variabile di ambiente non è impostata, la funzione non fa nulla.

Dettagli
Parametri
[in] progName
Il nome del programma o del contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata come prefisso per i messaggi di errore e gli avvisi.
[in] varName
Il nome della variabile di ambiente.
[in] optSets
Un elenco di puntatori alle strutture OptionSet che definiscono le opzioni legali. L'elenco fornito deve essere terminato con NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà chiamata una volta completata l'analisi delle opzioni con eventuali argomenti non-option rimanenti . La funzione viene richiamata indipendentemente dal fatto che rimangano disponibili o meno gli argomenti. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non-option.
[in] ignoreUnknown
Se impostato su true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e gli argomenti diversi dall'opzione sono stati analizzati correttamente o se la variabile di ambiente specificata non è impostata; false se un'opzione non è stata riconosciuta, se una delle funzioni dei gestori ha avuto esito negativo (ad esempio è stato restituito false) o se si è verificato un errore 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
)

Analizza un insieme di argomenti da una determinata stringa.

ParseArgsFromString() divide una determinata stringa (argStr) in un insieme di argomenti e analizza gli argomenti utilizzando la funzione ParseArgs().

Dettagli
Parametri
[in] progName
Il nome del programma o del contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata come prefisso per i messaggi di errore e gli avvisi.
[in] argStr
Una stringa contenente opzioni e argomenti da analizzare.
[in] optSets
Un elenco di puntatori alle strutture OptionSet che definiscono le opzioni legali. L'elenco fornito deve essere terminato con NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà chiamata una volta completata l'analisi delle opzioni con eventuali argomenti non-option rimanenti . La funzione viene richiamata indipendentemente dal fatto che rimangano disponibili o meno gli argomenti. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non-option.
[in] ignoreUnknown
Se impostato su true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e gli argomenti diversi dall'opzione sono stati analizzati correttamente; false se un'opzione non è stata riconosciuta, se una delle funzioni dei gestori ha avuto esito negativo (ad esempio è stato restituito false) o se si è verificato un errore interno.

La sintassi delle stringhe di input è simile a quella dei comandi della shell unix, ma con uno schema di citazioni semplificato. In particolare:

  • Gli argomenti sono delimitati da spazi vuoti, a meno che non siano racchiusi tra virgolette o di escape.
  • Una barra rovesciata esegue l'interpretazione letterale del carattere seguente e fa sì che venga considerato un carattere normale. La barra rovesciata stessa viene eliminata.
  • Le virgolette singole o doppie iniziano/terminano sottostringhe tra virgolette. All'interno di una sottostringa, gli unici caratteri speciali sono la barra rovesciata, che fa precedere da una sequenza di escape il carattere successivo e le virgolette finali corrispondenti. Le virgolette di inizio/fine vengono rimosse.

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
)

Analizza una stringa come valore booleano.

Questa funzione accetta i seguenti valori di input (senza distinzione tra maiuscole e minuscole): "true", "yes", "t", "y", "1", "false", "no", "f", "n", "0".

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il valore da analizzare.
[out] output
Un riferimento all'archiviazione per un bool in cui il valore analizzato verrà archiviato se l'operazione riesce.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseFabricId

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

Analizza un ID fabric Weave in formato testo.

La funzione ParseFabricId() accetta un ID fabric a 64 bit specificato in formato esadecimale, con o senza "0x" iniziale.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL contenente l'ID del fabric da analizzare.
[out] output
Un riferimento a un lvalue uint64_t in cui il valore analizzato verrà archiviato se l'operazione riesce.
[in] allowReserved
Se il valore è true, consente l'analisi degli ID fabric nell'intervallo riservato.
Restituisce
true se il valore è stato analizzato correttamente; false in caso contrario.

ParseHexString

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

Analizza una stringa di byte fornita in formato esadecimale.

ParseHexString() prevede che l'input sia sotto forma di coppie di cifre esadecimali (maiuscole o minuscole). Le coppie esadecimali possono facoltativamente essere separate da uno dei seguenti caratteri: due punti, punto e virgola, virgola, punto o trattino. Inoltre, gli spazi vuoti in qualsiasi punto della stringa di input vengono ignorati.

Dettagli
Parametri
[in] hexStr
Un puntatore alla stringa da analizzare.
[in] strLen
Il numero di caratteri in esadecimale da analizzare.
[in] outBuf
Un puntatore a un buffer in cui verranno archiviati i byte analizzati.
[in] outBufSize
La dimensione del buffer puntato da outBuf.
[out] outDataLen
Un riferimento a un numero intero che riceverà il numero totale di byte analizzati. Se outBuf non è abbastanza grande da contenere il numero di byte specificato, outDataLen verrà impostato su UINT32_MAX.
Restituisce
true se il valore è stato analizzato correttamente; false se i dati di input non sono corretti o se outBuf è troppo piccolo.

ParseIPAddress

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

Analizza un indirizzo IP in formato di testo.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL contenente l'indirizzo da analizzare.
[out] output
Un riferimento a un oggetto IPAddress in cui verrà archiviato il valore analizzato se l'operazione riesce.
Restituisce
true se il valore è stato analizzato correttamente; false in caso contrario.

ParseInt

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

Analizza e tenta di convertire una stringa in un numero intero senza segno a 64 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 64 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
[in] base
La base in base alla quale la stringa deve essere interpretata e analizzata. Se il valore è 0 o 16, la stringa può essere esadecimale e avere come prefisso "0x". Altrimenti, lo 0 è implicito come 10, a meno che non si incontra uno 0 iniziale in cui 8 è implicito.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e tenta di convertire una stringa in un numero intero senza segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 32 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
[in] base
La base in base alla quale la stringa deve essere interpretata e analizzata. Se il valore è 0 o 16, la stringa può essere esadecimale e avere come prefisso "0x". Altrimenti, lo 0 è implicito come 10, a meno che non si incontra uno 0 iniziale in cui 8 è implicito.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e tenta di convertire una stringa in un numero intero a 32 bit con segno, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero con segno a 32 bit in cui verrà archiviato il valore analizzato una volta completata l'operazione.
[in] base
La base in base alla quale la stringa deve essere interpretata e analizzata. Se il valore è 0 o 16, la stringa può essere esadecimale e avere come prefisso "0x". Altrimenti, lo 0 è implicito come 10, a meno che non si incontra uno 0 iniziale in cui 8 è implicito.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 64 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 64 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 32 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero con segno a 32 bit in cui verrà archiviato il valore analizzato una volta completata l'operazione.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 16 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 16 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero a 16 bit con segno, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero con segno a 16 bit in cui verrà archiviato il valore analizzato una volta completata l'operazione.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseInt

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

Analizza e cerca di convertire una stringa interpretata come un valore decimale in un numero intero senza segno a 8 bit, applicando l'interpretazione appropriata in base al parametro di base.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta il numero intero da analizzare.
[out] output
Un riferimento all'archiviazione per un numero intero senza segno a 8 bit in cui verrà archiviato il valore analizzato se l'operazione riesce.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

ParseNodeId

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

Analizza un ID nodo Weave in formato testo.

La funzione ParseNodeId() accetta un ID nodo a 64 bit specificato in formato esadecimale (con o senza "0x") iniziale o le parole "any" o "tutti" che vengono interpretati come l'ID nodo Any (0xFFFFFFFFFFFFFFFF).

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL contenente l'ID del nodo da analizzare.
[out] output
Un riferimento a un lvalue uint64_t in cui il valore analizzato verrà archiviato se l'operazione riesce.
Restituisce
true se il valore è stato analizzato correttamente; false in caso contrario.

ParseSubnetId

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

Analizza e tenta di convertire una stringa in un ID subnet non firmato a 16 bit, interpretando la stringa come esadecimale.

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL che rappresenta l'ID della subnet, formattato come esadecimale, da analizzare.
[in,out] subnetId
Un riferimento all'archiviazione per un numero intero senza segno a 16 bit in cui verrà archiviato il valore dell'ID subnet analizzato una volta completata l'operazione.
Restituisce
è vero per il successo; altrimenti false in caso di errore.

PrintOptionHelp

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

Stampa il testo della guida per un elenco specificato di opzioni di uno stream.

Dettagli
Parametri
[in] optSets
Un elenco di puntatori alle strutture OptionSet che contengono il testo della guida da stampare.
[in] s
Il flusso FILE su cui deve essere stampato il testo della guida.

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
)