nl::ArgParser

Podsumowanie

Wyliczenia

OptionArgumentType enum | typ wyliczeniowy
Określa wymagania dotyczące argumentów opcji wiersza poleceń.

Definicje typów

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
Funkcja, która może zostać wywołana w celu obsługi wszelkich pozostałych argumentów wiersza poleceń, które nie są opcjami.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
Funkcja, którą można wywołać w celu obsługi zestawu opcji wiersza poleceń.

Zmienne

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Wskaźnik służący do drukowania błędów występujących podczas analizy argumentu.
gActiveOptionSets = NULL
Lista obiektów OptionSet przekazanych obecnie do aktywnego wywołania ParseArgs().

Funkcje

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
Wydrukuj komunikat o błędzie związany z analizą argumentów.
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
Analizuj zestaw argumentów w stylu wiersza poleceń, wywołując funkcje obsługi w celu przetworzenia każdej opcji i argumentu niebędącego opcją.
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
Analizuj zestaw argumentów z nazwanej zmiennej środowiskowej.
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
Analizuj zestaw argumentów z danego ciągu znaków.
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
Przeanalizuj ciąg znaków jako wartość logiczną.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Przeanalizuj identyfikator tkaniny Weave w formie tekstowej.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Przeanalizuj ciąg bajtów podany w postaci szesnastkowej.
ParseIPAddress(const char *str, IPAddress & output)
bool
Analizuj adres IP w formie tekstowej.
ParseInt(const char *str, uint64_t & output, int base)
bool
Przeprowadź analizę i spróbuj przekonwertować ciąg znaków na 64-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, uint32_t & output, int base)
bool
Przeprowadź analizę i spróbuj przekonwertować ciąg znaków na 32-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, int32_t & output, int base)
bool
Przeprowadź analizę i spróbuj przekonwertować ciąg na 32-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, uint64_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 64-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, uint32_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 32-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, int32_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętna na 32-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, uint16_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 16-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, int16_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 16-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseInt(const char *str, uint8_t & output)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 8-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Przeanalizuj identyfikator węzła Weave w formie tekstowej.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Przeanalizuj i spróbuj przekonwertować ciąg znaków na 16-bitowy niepodpisany identyfikator podsieci, interpretując ciąg jako wartość szesnastkową.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Wydrukuj tekst pomocy dotyczący określonej listy opcji w strumieniu.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Zajęcia

nl::ArgParser::HelpOptions

Wspólna wartość OptionSet do obsługi opcji informacyjnych (pomoc, wersja).

nl::ArgParser::OptionSetBase

Obiekt OptionSet, w którym moduł obsługi jest funkcją wirtualną.

Konstrukcja

nl::ArgParser::OptionDef

Definiuje opcję wiersza poleceń.

nl::ArgParser::OptionSet

Definiuje grupę powiązanych logicznie opcji wiersza poleceń wielokrotnego użytku.

Wyliczenia

OptionArgumentType

 OptionArgumentType

Określa wymagania dotyczące argumentów opcji wiersza poleceń.

Definicje typów

NonOptionArgHandlerFunct

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

Funkcja, która może zostać wywołana w celu obsługi wszelkich pozostałych argumentów wiersza poleceń, które nie są opcjami.

OptionHandlerFunct

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

Funkcja, którą można wywołać w celu obsługi zestawu opcji wiersza poleceń.

Zmienne

PrintArgError

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

Wskaźnik służący do drukowania błędów występujących podczas analizy argumentu.

Aplikacje powinny wywoływać funkcję PrintArgError() w celu zgłoszenia błędów w funkcjach obsługi argumentów opcji i innych argumentów, a nie bezpośrednio drukować przy użyciu metody stdout/stderr.

Domyślnie jest to wskaźnik do funkcji DefaultPrintArgError().

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

Lista obiektów OptionSet przekazanych obecnie do aktywnego wywołania ParseArgs().

Jeśli nie jest wykonywane żadne wywołanie ParseArgs(), ta wartość będzie miała wartość NULL.

Funkcje

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

Wydrukuj komunikat o błędzie związany z analizą argumentów.

Domyślna funkcja używana do drukowania komunikatów o błędach, które pojawiają się w wyniku analizy argumentów.

Szczegóły
Parametry
[in] msg
Wiadomość do wydrukowania.

Aplikacje powinny wywoływać wskaźnik funkcji PrintArgError, zamiast wywoływać tę funkcję bezpośrednio.

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
)

Analizuj zestaw argumentów w stylu wiersza poleceń, wywołując funkcje obsługi w celu przetworzenia każdej opcji i argumentu niebędącego opcją.

Funkcja ParseArgs() pobiera listę argumentów (argv) i analizuje je zgodnie z zestawem podanych definicji opcji. Funkcja obsługuje zarówno opcje długie (opt), jak i krótkie (-o) oraz implementuje taką samą składnię opcji jak w przypadku funkcji GNU getopt_long(3).

Szczegóły
Parametry
[in] progName
Nazwa programu lub kontekstu, w którym analizowane są argumenty. Ten ciąg znaków będzie używany przed komunikatami o błędach i ostrzeżeniami.
[in] argc
Liczba argumentów do przeanalizowania plus 1.
[in] argv
Tablica ciągów argumentów do analizy. Długość tablicy musi być o 1 większa niż wartość określona dla argumentu argc, a argument argv[argc] musi być ustawiony na wartość NULL. Analiza argumentu rozpoczyna się od elementu tablicy second (argument 1). Element 0 jest ignorowany.
[in] optSets
Lista wskaźników do struktur OptionSet, które definiują opcje prawne. Podana lista musi być zakończona wartością NULL.
[in] nonOptArgHandler
Wskaźnik do funkcji, która będzie wywoływana po zakończeniu analizy opcji z pozostałymi argumentami niebędącymi opcją . Funkcja jest wywoływana niezależnie od tego, czy pozostają jakieś argumenty. Jeśli zostanie podana wartość NULL, ParseArgs() zgłosi błąd w przypadku wystąpienia argumentów innych niż opcje.
[in] ignoreUnknown
Jeśli ma wartość prawda, nierozpoznane opcje są ignorowane dyskretnie.
Zwroty
true, jeśli wszystkie opcje i argumenty inne niż opcje zostały przeanalizowane; false, jeśli opcja nie została rozpoznana lub jedna z funkcji modułu obsługi zakończyła się niepowodzeniem (czyli zwróciła wartość „fałsz”).

Definicje opcji są przekazywane do ParseArgs() w postaci tablicy struktur OptionSet (optSets). Każdy element OptionSet zawiera tablicę definicji opcji oraz funkcję obsługi. ParseArgs() przetwarza argumenty opcji w podanej kolejności, wywołując odpowiednią funkcję obsługi dla każdej rozpoznanej opcji. Po przeanalizowaniu wszystkich opcji jednokrotnie wywoływana jest osobna funkcja obsługi niebędąca opcją (nonOptArgHandler), aby przetworzyć pozostałe argumenty.

ZBIORY OPCJI

Element OptionSet zawiera zestaw definicji opcji wraz ze wskaźnikiem do funkcji obsługi, która jest wywoływana po napotkaniu jednej z powiązanych opcji. Zestawy opcji zawierają też tekst pomocy opisujący składnię i przeznaczenie poszczególnych opcji (patrz POMOC poniżej). Zestawy opcji umożliwiają tworzenie kolekcji powiązanych opcji do wielokrotnego użytku. Ułatwia to obsługę wielu aplikacji, które akceptują podobne opcje (np. aplikacje testowe).

Istnieją 2 wzorce do definiowania OptionSetsone, które mogą zainicjować instancję konstrukcji OptionSet, np. jako globalną statyczną, lub podklasę OptionSetBase i udostępnić konstruktor. Wykorzystuje ona czystą wirtualną funkcję HandleOption() do delegowania obsługi opcji do podklasy.

Listy pozycji OptionSet są przekazywane do funkcji ParseArgs() jako tablica wskaźników z wartością 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))
    {
        ...
    }
}

DEFINICJE OPCJI

Opcje definiuje się za pomocą struktury OptionDef. Definicje opcji mają postać tablicy elementów OptionDef, w której każdy element zawiera: nazwę opcji, liczbę całkowitą służącą do jej zidentyfikowania oraz informację o tym, czy dana opcja oczekuje lub zezwala na argument. Koniec tablicy opcji jest sygnalizowany przez pole Nazwa o wartości 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 }
};

IDENTYFIKATORY OPCJI

Identyfikatory opcji określają opcje w kodzie, który je obsługuje (funkcja OptionHandler). Identyfikatory opcji odnoszą się do elementu OptionSet, w którym się pojawiają, i dlatego można ich używać ponownie w różnych parametrach OptionSet (jednak patrz KRÓTKIE OPCJE poniżej). Zazwyczaj identyfikatory opcji numerowania zaczynają się od 1000, ale można użyć dowolnej liczby > 128. Opcje aliasów możesz utworzyć, korzystając z tego samego identyfikatora opcji z różnymi nazwami opcji.

OPCJE KRÓTKIE

W przeciwieństwie do getopt_long(3) funkcja ParseArgs() nie pobiera osobnego ciągu tekstowego zawierającego listę krótkich znaków opcji. Dowolna opcja, której wartość identyfikatora mieści się w zakresie graficznych znaków ASCII, umożliwia użycie tego znaku jako krótkiej opcji.

Funkcja ParseArgs() wymaga, aby krótkie znaki opcji były niepowtarzalne we wszystkich elementach OptionSet. Z tego względu odradzamy stosowanie krótkich opcji w przypadku korzystania z zbiorów OptionSets współdzielonych przez różne programy ze względu na wysokie ryzyko kolizji. Krótkich znaków opcji można używać w pojedynczym elemencie OptionSet, aby tworzyć długie aliasy nazw opcji.

POMOC DOTYCZĄCA OPCJI

Każdy element OptionSet zawiera ciąg znaków OptionHelp opisujący przeznaczenie i składnię powiązanych opcji. Funkcja PrintOptionHelp() służy do generowania informacji o użyciu opcji.

Zgodnie z konwencją ciągi pomocy dotyczące opcji składają się z przykładowej składni, po której następuje jej opis tekstowy. Jeśli opcja ma krótką wersję lub nazwę aliasu, jest ona podana przed podstawową długą nazwą. Aby zachować spójność, wiersze składni są wcięte po 2 spacjami, a linie tekstu – po 7 spacji. Po każdym opisie opcji, w tym ostatnim, znajduje się jeden pusty wiersz.

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

GRUPY POMOCY OPCJI

Zestawy OptionSets zawierają ciąg znaków HelpGroupName, który służy do grupowania opcji w danych wyjściowych pomocy. Funkcja PrintOptionHelp() używa nazwy Grupy Pomocy jako tytułu sekcji w wygenerowanych danych wyjściowych dotyczących użycia. Jeśli wiele parametrów OptionSet ma tę samą nazwę HelpGroupName, funkcja PrintOptionHelp() wyświetla pomoc dotyczącą różnych OptionSets razem pod wspólnym tytułem sekcji.

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
)

Analizuj zestaw argumentów z nazwanej zmiennej środowiskowej.

Funkcja ParseArgsFromEnvVar() odczytuje nazwaną zmienną środowiskową i przekazuje wartość do funkcji ParseArgsFromString() w celu przeanalizowania. Jeśli zmienna środowiskowa nie jest ustawiona, funkcja nie robi nic.

Szczegóły
Parametry
[in] progName
Nazwa programu lub kontekstu, w którym analizowane są argumenty. Ten ciąg znaków będzie używany przed komunikatami o błędach i ostrzeżeniami.
[in] varName
Nazwa zmiennej środowiskowej.
[in] optSets
Lista wskaźników do struktur OptionSet, które definiują opcje prawne. Podana lista musi być zakończona wartością NULL.
[in] nonOptArgHandler
Wskaźnik do funkcji, która będzie wywoływana po zakończeniu analizy opcji z pozostałymi argumentami niebędącymi opcją . Funkcja jest wywoływana niezależnie od tego, czy pozostają jakieś argumenty. Jeśli zostanie podana wartość NULL, ParseArgs() zgłosi błąd w przypadku wystąpienia argumentów innych niż opcje.
[in] ignoreUnknown
Jeśli ma wartość prawda, nierozpoznane opcje są ignorowane dyskretnie.
Zwroty
true, jeśli wszystkie opcje i argumenty inne niż opcje zostały przeanalizowane lub określona zmienna środowiskowa nie jest ustawiona; false, jeśli opcja nie została rozpoznana, jeśli jedna z funkcji obsługi zakończyła się niepowodzeniem (zwrócono wartość fałsz) lub wystąpił błąd wewnętrzny.

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
)

Analizuj zestaw argumentów z danego ciągu znaków.

Funkcja ParseArgsFromString() dzieli dany ciąg (argStr) na zestaw argumentów i analizuje argumenty przy użyciu funkcji ParseArgs().

Szczegóły
Parametry
[in] progName
Nazwa programu lub kontekstu, w którym analizowane są argumenty. Ten ciąg znaków będzie używany przed komunikatami o błędach i ostrzeżeniami.
[in] argStr
Ciąg tekstowy zawierający opcje i argumenty do analizy.
[in] optSets
Lista wskaźników do struktur OptionSet, które definiują opcje prawne. Podana lista musi być zakończona wartością NULL.
[in] nonOptArgHandler
Wskaźnik do funkcji, która będzie wywoływana po zakończeniu analizy opcji z pozostałymi argumentami niebędącymi opcją . Funkcja jest wywoływana niezależnie od tego, czy pozostają jakieś argumenty. Jeśli zostanie podana wartość NULL, ParseArgs() zgłosi błąd w przypadku wystąpienia argumentów innych niż opcje.
[in] ignoreUnknown
Jeśli ma wartość prawda, nierozpoznane opcje są ignorowane dyskretnie.
Zwroty
true, jeśli udało się przeanalizować wszystkie opcje i argumenty inne niż opcje; false, jeśli opcja nie została rozpoznana, jeśli jedna z funkcji modułu obsługi zakończyła się niepowodzeniem (zwrócono wartość fałsz) lub wystąpił błąd wewnętrzny.

Składnia ciągów wejściowych jest podobna do składni poleceń powłoki w systemie uniksowym, ale z uproszczonym schematem cudzysłowu. Oto najważniejsze kwestie:

  • Argumenty są rozdzielane spacjami, chyba że odstępy są ujęte w cudzysłowy lub znaki zmiany znaczenia.
  • Ukośnik lewy zmienia znaczenie następnego znaku, przez co jest on traktowany jak zwykły znak. Ukośnik lewy jest usuwany.
  • Podłańcuchy ujęte w pojedynczym lub podwójnym cudzysłowie na początku/końcu. W podłańcuchu jedyne znaki specjalne to ukośnik lewy, który zmienia znaczenie następnego znaku, i odpowiadający mu końcowy cudzysłów. Znaki cudzysłowu początkowego i końcowego są obcięte.

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
)

Przeanalizuj ciąg znaków jako wartość logiczną.

Ta funkcja akceptuje następujące wartości wejściowe (wielkość liter nie ma znaczenia): „true”, „yes”, „t”, „y”, „1”, „false”, „no”, „f”, „n”, „0”.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z zakończeniem wartości NULL, który reprezentuje wartość do przeanalizowania.
[out] output
Odwołanie do pamięci wartości logicznej, w której zostanie zapisana analizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseFabricId

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

Przeanalizuj identyfikator tkaniny Weave w formie tekstowej.

Funkcja ParseFabricId() akceptuje 64-bitowy identyfikator tkaniny podany w formacie szesnastkowym z początkowym znakiem „0x” lub bez niego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C zakończonego wartością NULL, który zawiera identyfikator tkaniny do przeanalizowania.
[out] output
Odwołanie do wartości uint64_t, w której analizowana wartość będzie przechowywana w przypadku powodzenia.
[in] allowReserved
Jeśli ma wartość true (prawda), zezwól na analizowanie identyfikatorów tkanin w zarezerwowanym zakresie.
Zwroty
Wartość „true” (prawda), jeśli wartość została prawidłowo przeanalizowana, lub „false” (fałsz), jeśli nie została przeanalizowana.

ParseHexString

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

Przeanalizuj ciąg bajtów podany w postaci szesnastkowej.

Funkcja ParseHexString() wymaga, aby dane wejściowe miały postać par cyfr szesnastkowych (wielkimi lub małymi). Pary szesnastkowe mogą być opcjonalnie rozdzielone tymi znakami: dwukropek, średnik, przecinek, kropka lub łącznik. Oprócz tego odstępy w ciągu tekstowym będą ignorowane.

Szczegóły
Parametry
[in] hexStr
Wskaźnik do ciągu znaków do przeanalizowania.
[in] strLen
Liczba znaków w funkcji hexStr do przeanalizowania.
[in] outBuf
Wskaźnik do bufora, w którym będą przechowywane bajty analizy.
[in] outBufSize
Rozmiar bufora wskazywany przez: outBuf.
[out] outDataLen
Odwołanie do liczby całkowitej, która otrzyma łączną liczbę przeanalizowanych bajtów. Jeśli zdarzenie outBuf nie jest wystarczająco duże, aby pomieścić podaną liczbę bajtów, wartość outDataLen zostanie ustawiona na UINT32_MAX.
Zwroty
Wartość true, jeśli wartość została przeanalizowana, lub false, jeśli dane wejściowe mają nieprawidłowy format lub jeśli outBuf jest zbyt mały.

ParseIPAddress

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

Analizuj adres IP w formie tekstowej.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C zakończonego wartością NULL, który zawiera adres do przeanalizowania.
[out] output
Odwołanie do obiektu IPAddress, w którym przeanalizowana wartość zostanie zapisana po pomyślnym zakończeniu.
Zwroty
Wartość „true” (prawda), jeśli wartość została prawidłowo przeanalizowana, lub „false” (fałsz), jeśli nie została przeanalizowana.

ParseInt

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

Przeprowadź analizę i spróbuj przekonwertować ciąg znaków na 64-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 64-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
[in] base
Podstawa, zgodnie z którą ciąg ma być interpretowany i analizowany. Jeśli wartość to 0 lub 16, ciąg może być wartością szesnastkową z prefiksem „0x”. W innych przypadkach wartość 0 jest domyślnie wskazana jako 10, chyba że na początku występuje 0, w którym wnioskowane jest 8.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeprowadź analizę i spróbuj przekonwertować ciąg znaków na 32-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 32-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
[in] base
Podstawa, zgodnie z którą ciąg ma być interpretowany i analizowany. Jeśli wartość to 0 lub 16, ciąg może być wartością szesnastkową z prefiksem „0x”. W innych przypadkach wartość 0 jest domyślnie wskazana jako 10, chyba że na początku występuje 0, w którym wnioskowane jest 8.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeprowadź analizę i spróbuj przekonwertować ciąg na 32-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 32-bitowej liczby całkowitej ze znakiem, do której zostanie zapisana analizowana wartość w przypadku powodzenia.
[in] base
Podstawa, zgodnie z którą ciąg ma być interpretowany i analizowany. Jeśli wartość to 0 lub 16, ciąg może być wartością szesnastkową z prefiksem „0x”. W innych przypadkach wartość 0 jest domyślnie wskazana jako 10, chyba że na początku występuje 0, w którym wnioskowane jest 8.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 64-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 64-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 32-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 32-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętna na 32-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do pamięci dla 32-bitowej liczby całkowitej ze znakiem, do której zostanie zapisana analizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 16-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do miejsca na dane 16-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 16-bitową liczbę całkowitą ze znakiem, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do miejsca na dane 16-bitowej liczby całkowitej ze znakiem, do której zostanie zapisana analizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseInt

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków interpretowany jako wartość dziesiętną na 8-bitową nieoznaczoną liczbę całkowitą, stosując odpowiednią interpretację na podstawie parametru podstawowego.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący liczbę całkowitą do przeanalizowania.
[out] output
Odwołanie do miejsca na dane 8-bitowej nieoznaczonej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

ParseNodeId

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

Przeanalizuj identyfikator węzła Weave w formie tekstowej.

Funkcja ParseNodeId() akceptuje 64-bitowy identyfikator węzła podany w formacie szesnastkowym (z znakiem „0x” lub bez niego) albo słowa „any” lub „all”, które są interpretowane jako identyfikator dowolnego węzła (0xFFFFFFFFFFFFFFFF).

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z zakończeniem wartości NULL, zawierający identyfikator węzła do przeanalizowania.
[out] output
Odwołanie do wartości uint64_t, w której analizowana wartość będzie przechowywana w przypadku powodzenia.
Zwroty
Wartość „true” (prawda), jeśli wartość została prawidłowo przeanalizowana, lub „false” (fałsz), jeśli nie została przeanalizowana.

ParseSubnetId

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

Przeanalizuj i spróbuj przekonwertować ciąg znaków na 16-bitowy niepodpisany identyfikator podsieci, interpretując ciąg jako wartość szesnastkową.

Szczegóły
Parametry
[in] str
Wskaźnik do ciągu znaków C z końcówką wartości NULL, reprezentujący identyfikator podsieci w formacie szesnastkowym, który ma zostać przeanalizowany.
[in,out] subnetId
Odwołanie do przechowywania 16-bitowej niepodpisanej liczby całkowitej, do której zostanie zapisana przeanalizowana wartość identyfikatora podsieci w przypadku powodzenia.
Zwroty
„true” w przypadku sukcesu; w przeciwnym razie „false” (fałsz) w przypadku niepowodzenia.

PrintOptionHelp

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

Wydrukuj tekst pomocy dotyczący określonej listy opcji w strumieniu.

Szczegóły
Parametry
[in] optSets
Lista wskaźników do struktur OptionSet zawierających tekst pomocy do wydrukowania.
[in] s
Strumień FILE, w którym powinien zostać wydrukowany tekst pomocy.

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
)