nl::ArgParser

Riepilogo

Enumerazioni

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

Typedef

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Funzione che può essere chiamata per gestire gli argomenti rimanenti della riga di comando non facoltativi.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Funzione che è possibile chiamare 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 dell'argomento.
gActiveOptionSets = NULL
L'elenco di opzioni passate 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
Analizza un insieme di argomenti in stile riga di comando, chiamando le funzioni di gestione per elaborare ogni opzione e ogni 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 di 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 tessuto 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 specificata in formato esadecimale.
ParseIPAddress(const char *str, IPAddress & output)
bool
Analizza un indirizzo IP in formato 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 con segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint64_t & output)
bool
Analizza e tenta 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 tenta 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 tenta di convertire una stringa interpretata come un valore decimale in un numero intero con segno a 32 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint16_t & output)
bool
Analizza e tenta 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 tenta di convertire una stringa interpretata come un valore decimale in un numero intero con segno a 16 bit, applicando l'interpretazione appropriata in base al parametro di base.
ParseInt(const char *str, uint8_t & output)
bool
Analizza e tenta 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 senza segno a 16 bit, interpretando la stringa come esadecimale.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Stampa il testo della guida per un elenco specifico di opzioni per 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.

Strutture

nl::ArgParser::OptionDef

Definisce un'opzione della riga di comando.

nl::ArgParser::OptionSet

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

Enumerazioni

OptionArgumentType

 OptionArgumentType

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

Typedef

NonOptionArgHandlerFunct

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

Funzione che può essere chiamata per gestire gli argomenti rimanenti della riga di comando non facoltativi.

OptionHandlerFunct

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

Funzione che è possibile chiamare 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 dell'argomento.

Le applicazioni dovrebbero chiamare PrintArgError() per segnalare errori nelle funzioni di gestione degli argomenti 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 opzioni passate 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 i 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 direttamente questa funzione.

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
)

Analizza un insieme di argomenti in stile riga di comando, chiamando le funzioni di gestione per elaborare ogni opzione e ogni 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 le opzioni long (opt) e short (-o) e implementa la stessa sintassi delle opzioni della funzione GNU getopt_long(3).

Dettagli
Parametri
[in] progName
Il nome del programma o contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata per anteporre 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 dell'argomento inizia con l'elemento array second (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 terminare con un valore NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà richiamata una volta completata l'analisi dell'opzione con eventuali argomenti non facoltativi rimanenti . La funzione viene richiamata a prescindere dal fatto che siano presenti argomenti o meno. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non facoltativi.
[in] ignoreUnknown
Se il valore è true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e tutti gli argomenti non-opzione sono stati analizzati correttamente; false se un'opzione non è stata riconosciuta o se una delle funzioni del gestore ha avuto esito negativo (ovvero ha restituito false).

Le definizioni di opzione vengono passate a ParseArgs() sotto forma di array di strutture OptionSet (optSets). Ogni OptionSet contiene un array di definizioni di opzioni e una funzione di gestore. ParseArgs() elabora gli argomenti delle opzioni nell'ordine specificato, richiamando la rispettiva funzione di gestore per ogni opzione riconosciuta. Dopo aver analizzato tutte le opzioni, viene richiamata una funzione separata del gestore senza opzioni (nonOptArgHandler) per elaborare eventuali argomenti rimanenti.

SET DI OPZIONI

Un OptionSet contiene un insieme di definizioni di opzioni insieme a un puntatore a una funzione gestore che verrà richiamata quando viene rilevata una delle opzioni associate. I set di opzioni contengono inoltre testo della guida che descrive la sintassi e lo scopo di ciascuna opzione (consulta la GUIDA ALLE OPZIONI di seguito). Gli insiemi di opzioni sono progettati per consentire la creazione di raccolte riutilizzabili di opzioni correlate. In questo modo si semplifica l'impegno necessario per gestire più applicazioni che accettano opzioni simili (ad es. applicazioni di test).

Esistono due pattern per la definizione di optionSets; è possibile inizializzare un'istanza dello struct OptionSet stesso, ad esempio come globale statico, oppure la sottoclasse OptionSetBase e fornire un costruttore. La seconda utilizza una funzione HandleOption() pura virtuale per delegare la gestione delle opzioni alla sottoclasse.

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

ID OPZIONI

Gli ID opzione identificano le opzioni del codice che le gestisce (la funzione OpzioneHandler). Gli ID opzione sono relativi al set di opzioni OptionSet in cui appaiono e possono quindi essere riutilizzati in diversi set di opzioni (tuttavia, vedi OPZIONI BREVE di seguito). È prassi comune far iniziare gli ID delle opzioni di numerazione da 1000, tuttavia è possibile utilizzare qualsiasi numero maggiore di 128. Le opzioni di alias possono essere create utilizzando lo stesso ID opzione con nomi diversi per le opzioni.

OPZIONI BREVE

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

ParseArgs() richiede che i caratteri di opzione brevi siano univoci in tutti gli OpzioneSet. Per questo motivo, è sconsigliato utilizzare opzioni brevi per gli optionSet condivisi tra 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 L'OPZIONE

Ogni 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 consistono in un esempio di sintassi seguito da una descrizione testuale dell'opzione. Se l'opzione ha una versione breve o un nome alias, questo verrà fornito prima del nome lungo principale. Per coerenza, il rientro delle righe di sintassi è di 2 spazi, mentre quello delle righe descrittive di 7 spazi. Una riga vuota segue la descrizione di ogni 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";

OPZIONE GRUPPI DI GUIDA

I set di opzioni contengono una stringa HelpGroupName che viene utilizzata per raggruppare le opzioni nell'output della guida. La funzione PrintOptionHelp() utilizza HelpGroupName come titolo di sezione nell'output di utilizzo generato. Se più opzioni hanno lo stesso HelpGroupName, PrintOptionHelp() stamperà la guida per le diverse opzioni 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 esegue alcuna azione.

Dettagli
Parametri
[in] progName
Il nome del programma o contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata per anteporre 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 terminare con un valore NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà richiamata una volta completata l'analisi dell'opzione con eventuali argomenti non facoltativi rimanenti . La funzione viene richiamata a prescindere dal fatto che siano presenti argomenti o meno. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non facoltativi.
[in] ignoreUnknown
Se il valore è true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e tutti gli argomenti diversi dalle opzioni sono stati analizzati correttamente o se la variabile di ambiente specificata non è impostata; false se un'opzione non è stata riconosciuta, se una delle funzioni del gestore non è riuscita (ovvero è stata restituita una risposta 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 di una determinata stringa.

ParseArgsFromString() suddivide 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 contesto in cui vengono analizzati gli argomenti. Questa stringa verrà utilizzata per anteporre 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 terminare con un valore NULL.
[in] nonOptArgHandler
Un puntatore a una funzione che verrà richiamata una volta completata l'analisi dell'opzione con eventuali argomenti non facoltativi rimanenti . La funzione viene richiamata a prescindere dal fatto che siano presenti argomenti o meno. Se viene passato un valore NULL, ParseArgs() segnalerà un errore se sono presenti argomenti non facoltativi.
[in] ignoreUnknown
Se il valore è true, ignora automaticamente le opzioni non riconosciute.
Restituisce
true se tutte le opzioni e gli argomenti diversi dalle opzioni sono stati analizzati correttamente; false se un'opzione non è stata riconosciuta, se una delle funzioni del gestore non è riuscita (ovvero ha restituito false) o se si è verificato un errore interno.

La sintassi delle stringhe di input è simile a quella del comando shell di Unix, ma con uno schema di citazione semplificato. In particolare:

  • Gli argomenti sono delimitati da spazi vuoti, a meno che non siano presenti virgolette o caratteri di escape.
  • La barra rovesciata fa precedere da una barra rovesciata il carattere seguente e, di conseguenza, viene considerato un carattere normale. La barra rovesciata viene rimossa.
  • Sottostringhe racchiuse tra virgolette singole o doppie. All'interno di una sottostringa, gli unici caratteri speciali sono la barra rovesciata, che sottopone a escape il carattere successivo e le virgolette finali corrispondenti. Le virgolette di inizio/fine vengono eliminate.

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 allo spazio di archiviazione di un bool in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseFabricId

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

Analizza un ID tessuto Weave in formato testo.

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

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL contenente l'ID fabric da analizzare.
[out] output
Un riferimento a un lvalue uint64_t in cui il valore analizzato verrà memorizzato in caso di esito positivo.
[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 specificata in formato esadecimale.

ParseHexString() prevede che l'input sia sotto forma di coppie di cifre esadecimali (maiuscole o minuscole). Le coppie esadecimali possono essere facoltativamente 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 hexStr da analizzare.
[in] outBuf
Un puntatore a un buffer in cui verranno archiviati i byte di analisi.
[in] outBufSize
La dimensione del buffer a cui punta outBuf.
[out] outDataLen
Un riferimento a un numero intero che riceverà il numero totale di byte analizzati. Nel caso in cui outBuf non sia 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 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 il valore analizzato verrà archiviato in caso di esito positivo.
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
Riferimento allo spazio di archiviazione per un numero intero senza segno a 64 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
[in] base
La base in base alla quale deve essere interpretata e analizzata la stringa. Se è pari a 0 o 16, la stringa può essere esadecimale e preceduta da "0x". Altrimenti, uno 0 è implicito come 10, a meno che non si verifichi uno 0 iniziale in cui è implicito 8.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

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
Riferimento per l'archiviazione di un numero intero senza segno a 32 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
[in] base
La base in base alla quale deve essere interpretata e analizzata la stringa. Se è pari a 0 o 16, la stringa può essere esadecimale e preceduta da "0x". Altrimenti, uno 0 è implicito come 10, a meno che non si verifichi uno 0 iniziale in cui è implicito 8.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta di convertire una stringa in un numero intero con 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
Riferimento allo spazio di archiviazione per un valore intero con segno a 32 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
[in] base
La base in base alla quale deve essere interpretata e analizzata la stringa. Se è pari a 0 o 16, la stringa può essere esadecimale e preceduta da "0x". Altrimenti, uno 0 è implicito come 10, a meno che non si verifichi uno 0 iniziale in cui è implicito 8.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta 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
Riferimento allo spazio di archiviazione per un numero intero senza segno a 64 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta 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
Riferimento per l'archiviazione di un numero intero senza segno a 32 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta di convertire una stringa interpretata come un valore decimale in un numero intero con 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
Riferimento allo spazio di archiviazione per un valore intero con segno a 32 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta 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
Riferimento allo spazio di archiviazione per un numero intero senza segno a 16 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta di convertire una stringa interpretata come un valore decimale in un numero intero con 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 allo spazio di archiviazione per un Integer con segno a 16 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

ParseInt

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

Analizza e tenta 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
Riferimento allo spazio di archiviazione per un numero intero senza segno a 8 bit in cui il valore analizzato verrà memorizzato in caso di esito positivo.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

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 fornito in formato esadecimale (con o senza uno "0x" iniziale) o le parole "any" o "all" che vengono interpretate come significato dell'ID nodo Any (0xFFFFFFFFFFFFFFFF).

Dettagli
Parametri
[in] str
Un puntatore a una stringa C con terminazione NULL contenente l'ID nodo da analizzare.
[out] output
Un riferimento a un lvalue uint64_t in cui il valore analizzato verrà memorizzato in caso di esito positivo.
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 senza segno 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 subnet, formattato come esadecimale, da analizzare.
[in,out] subnetId
Riferimento allo spazio di archiviazione per un numero intero senza segno a 16 bit in cui verrà memorizzato, in caso di esito positivo, il valore dell'ID subnet analizzato.
Restituisce
true in caso di successo; altrimenti, false in caso di fallimento.

PrintOptionHelp

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

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

Dettagli
Parametri
[in] optSets
Un elenco di puntatori alle strutture OptionSet che contengono il testo della guida da stampare.
[in] s
Lo stream FILE in 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
)