nl::ArgParser

요약

열거

OptionArgumentType enum
명령줄 옵션의 인수 요구사항을 정의합니다.

Typedef

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) typedef
bool(*
옵션이 아닌 나머지 명령줄 인수를 처리하기 위해 호출할 수 있는 함수입니다.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) typedef
bool(*
일련의 명령줄 옵션을 처리하기 위해 호출할 수 있는 함수입니다.

변수

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
인수 파싱 중에 발생하는 오류를 출력하는 데 사용되는 함수에 대한 포인터입니다.
gActiveOptionSets = NULL
현재 활성 ParseArgs() 호출에 전달된 OptionSets 목록입니다.

함수

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
인수 파싱과 관련된 오류 메시지를 출력합니다.
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
각 옵션과 비옵션 인수를 처리하는 함수를 호출하여 일련의 명령줄 스타일 인수를 파싱합니다.
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
이름이 지정된 환경 변수에서 인수 집합을 파싱합니다.
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
주어진 문자열에서 인수 집합을 파싱합니다.
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
문자열을 불리언 값으로 파싱합니다.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
텍스트 형식으로 Weave 패브릭 ID를 파싱합니다.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
16진수 형식으로 제공된 바이트 문자열을 파싱합니다.
ParseIPAddress(const char *str, IPAddress & output)
bool
텍스트 형식으로 IP 주소를 파싱합니다.
ParseInt(const char *str, uint64_t & output, int base)
bool
문자열을 파싱하고 부호 없는 64비트 정수로 변환하려고 시도하며 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint32_t & output, int base)
bool
문자열을 부호 없는 32비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, int32_t & output, int base)
bool
문자열을 파싱하고 부호 있는 32비트 정수로 변환하려고 시도하며 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint64_t & output)
bool
십진수 값으로 해석된 문자열을 부호 없는 64비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint32_t & output)
bool
십진수 값으로 해석된 문자열을 부호 없는 32비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, int32_t & output)
bool
10진수 값으로 해석된 문자열을 부호 있는 32비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint16_t & output)
bool
십진수 값으로 해석된 문자열을 부호 없는 16비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, int16_t & output)
bool
십진수 값으로 해석된 문자열을 부호 있는 16비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseInt(const char *str, uint8_t & output)
bool
십진수 값으로 해석된 문자열을 부호 없는 8비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
텍스트 형식으로 Weave 노드 ID를 파싱합니다.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
문자열을 16진수로 해석하여 문자열을 파싱하고 부호 없는 16비트 서브넷 ID로 변환하려고 시도합니다.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
지정된 옵션 목록의 도움말 텍스트를 스트림에 출력합니다.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

클래스

nl::ArgParser::HelpOptions

정보 옵션 (도움말, 버전) 처리를 위한 일반적인 OptionSet

nl::ArgParser::OptionSetBase

핸들러가 가상 함수인 OptionSet.

구조체

nl::ArgParser::OptionDef

명령줄 옵션을 정의합니다.

nl::ArgParser::OptionSet

논리적으로 관련 있고 재사용 가능한 명령줄 옵션 그룹을 정의합니다.

열거형

OptionArgumentType

 OptionArgumentType

명령줄 옵션의 인수 요구사항을 정의합니다.

Typedef

NonOptionArgHandlerFunct

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

옵션이 아닌 나머지 명령줄 인수를 처리하기 위해 호출할 수 있는 함수입니다.

OptionHandlerFunct

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

일련의 명령줄 옵션을 처리하기 위해 호출할 수 있는 함수입니다.

변수

PrintArgError

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

인수 파싱 중에 발생하는 오류를 출력하는 데 사용되는 함수에 대한 포인터입니다.

애플리케이션은 stdout/stderr에 직접 출력하는 대신 PrintArgError()를 호출하여 옵션 및 비 옵션 인수 처리 함수의 오류를 보고해야 합니다.

기본값은 DefaultPrintArgError() 함수를 가리키는 포인터입니다.

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

현재 활성 ParseArgs() 호출에 전달된 OptionSets 목록입니다.

진행 중인 ParseArgs() 호출이 없으면 이 값은 NULL이 됩니다.

함수

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

인수 파싱과 관련된 오류 메시지를 출력합니다.

인수 파싱으로 인해 발생하는 오류 메시지를 출력하는 데 사용되는 기본 함수입니다.

세부정보
매개변수
[in] msg
출력할 메시지입니다.

애플리케이션은 이 함수를 직접 호출하지 않고 PrintArgError 함수 포인터를 통해 호출해야 합니다.

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
)

각 옵션과 비옵션 인수를 처리하는 함수를 호출하여 일련의 명령줄 스타일 인수를 파싱합니다.

ParseArgs()는 인수 목록 (argv)을 가져와서 제공된 옵션 정의 집합에 따라 파싱합니다. 함수는 long 옵션 (opt)과 short (-o) 옵션을 모두 지원하며 GNU getopt_long(3) 함수와 동일한 옵션 구문을 구현합니다.

세부정보
매개변수
[in] progName
인수가 파싱되는 프로그램 또는 컨텍스트의 이름입니다. 이 문자열은 오류 메시지 및 경고의 접두사를 지정하는 데 사용됩니다.
[in] argc
파싱할 인수의 수에 1을 더한 값입니다.
[in] argv
파싱할 인수 문자열의 배열입니다. 배열 길이는 argc에 지정된 값보다 1 커야 하며 argv[argc] 는 NULL로 설정해야 합니다. 인수 파싱은 second 배열 요소 (argv[1])로 시작하며 요소 0은 무시됩니다.
[in] optSets
법적 옵션을 정의하는 OptionSet 구조체 포인터 목록입니다. 제공된 목록은 NULL로 끝나야 합니다.
[in] nonOptArgHandler
옵션 파싱이 나머지 모든 비 옵션 인수로 완료되면 호출될 함수에 대한 포인터입니다 . 이 함수는 인수가 남아 있는지 여부에 관계없이 호출됩니다. NULL이 전달되면 ParseArgs()는 옵션이 아닌 인수가 있으면 오류를 보고합니다.
[in] ignoreUnknown
true인 경우 인식할 수 없는 옵션을 자동으로 무시합니다.
반환
모든 옵션과 비옵션 인수가 성공적으로 파싱된 경우 true, 옵션이 인식되지 않거나 핸들러 함수 중 하나가 실패하면 (즉, false를 반환한 경우) false입니다.

옵션 정의는 OptionSet 구조의 배열(optSets)로 ParseArgs()에 전달됩니다. 각 OptionSet에는 옵션 정의 배열과 핸들러 함수가 포함됩니다. ParseArgs()는 지정된 순서대로 옵션 인수를 처리하고 인식된 옵션마다 각각의 핸들러 함수를 호출합니다. 모든 옵션이 파싱되면 별도의 비 옵션 핸들러 함수 (nonOptArgHandler)가 한 번 호출되어 나머지 인수를 처리합니다.

옵션 세트

OptionSet에는 옵션 정의 집합과 연결된 옵션 중 하나가 발생할 때 호출될 핸들러 함수에 대한 포인터가 포함됩니다. 옵션 세트에는 각 옵션의 구문과 목적을 설명하는 도움말 텍스트도 포함되어 있습니다 (아래의 옵션 도움말 참조). 옵션 세트는 재사용 가능한 관련 옵션 모음을 만들 수 있도록 설계되었습니다. 따라서 유사한 옵션을 허용하는 여러 애플리케이션 (예: 테스트 애플리케이션)을 유지관리하는 데 필요한 작업이 간소화됩니다.

OptionSetsone을 정의하는 데는 두 가지 패턴이 있습니다. OptionSet 구조체 자체의 인스턴스를 정적 전역 변수로 초기화하거나 OptionSetBase 서브클래스로 초기화하고 생성자를 제공하는 것입니다. 후자는 순수한 가상 HandleOption() 함수를 사용하여 옵션 처리를 서브클래스에 위임합니다.

OptionSet 목록은 NULL로 끝나는 포인터 배열로 ParseArgs() 함수에 전달됩니다. 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))
    {
        ...
    }
}

옵션 정의

옵션은 OptionDef 구조를 사용하여 정의됩니다. 옵션 정의는 OptionDef 요소의 배열로 구성되며, 각 요소에는 옵션 이름, 옵션을 식별하는 데 사용되는 정수 ID, 옵션에서 인수를 예상하거나 허용하는지 여부가 포함됩니다. 옵션 배열의 끝은 NULL Name 필드로 신호를 받습니다. E.g.:

enum
{
    kOpt_Listen = 1000,
    kOpt_Length,
    kOpt_Count,
};

static OptionDef gToolOptionDefs[] =
{
    // NAME         REQUIRES/ALLOWS ARG?  ID/SHORT OPTION CHAR
    // ============================================================
    {  "listen",    kNoArgument,          kOpt_Listen     },
    {  "length",    kArgumentRequired,    kOpt_Length     },
    {  "count",     kArgumentRequired,    kOpt_Count      },
    {  "num",       kArgumentRequired,    kOpt_Count      }, // alias for --count
    {  "debug",     kArgumentOptional,    'd'             },
    {  "help",      kNoArgument,          'h'             },
    {  NULL }
};

옵션 ID

옵션 ID는 옵션을 처리하는 코드 (OptionHandler 함수)에 옵션을 식별합니다. 옵션 ID는 표시되는 OptionSet에 상대적이므로 다양한 OptionSet에서 재사용할 수 있습니다 (아래의 짧은 옵션 참조). 일반적으로 1000에서 번호 매기기 옵션 ID를 시작하는 것이 규칙이지만 128보다 큰 모든 숫자를 사용할 수 있습니다. 별칭 옵션은 동일한 옵션 ID에 다른 옵션 이름을 사용하여 만들 수 있습니다.

짧은 옵션

getopt_long(3)과 달리 ParseArgs()는 짧은 옵션 문자 목록을 지정하는 별도의 문자열을 사용하지 않습니다. 대신 ID 값이 그래픽 ASCII 문자 범위에 속하는 모든 옵션은 해당 문자를 short 옵션으로 사용하도록 허용합니다.

ParseArgs()를 사용하려면 짧은 옵션 문자가 모든 OptionSet에서 고유해야 합니다. 따라서 충돌 가능성이 크므로 프로그램 간에 공유되는 모든 OptionSet에는 짧은 옵션을 사용하지 않는 것이 좋습니다. 짧은 옵션 문자는 긴 별칭 옵션 이름을 만들 수 있도록 단일 OptionSet에서 재사용될 수 있습니다.

옵션 도움말

OptionSet에는 연결된 옵션의 목적과 구문을 설명하는 OptionHelp 문자열이 포함됩니다. 이러한 문자열은 PrintOptionHelp() 함수에서 옵션 사용 정보를 생성하는 데 사용됩니다.

규칙에 따라 옵션 도움말 문자열은 옵션의 텍스트 설명이 뒤따르는 구문 예시로 구성됩니다. 옵션에 짧은 버전이나 별칭 이름이 있는 경우 기본 긴 이름 앞에 부여됩니다. 일관성을 위해 구문 줄은 2개 공백으로 들여쓰기되고 설명 줄은 7개 공백으로 들여쓰기됩니다. 마지막 줄을 포함하여 각 옵션 설명 다음에 빈 줄이 한 줄 표시됩니다.

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

옵션 도움말 그룹

OptionSet에는 도움말 출력에서 옵션을 그룹화하는 데 사용되는 HelpGroupName 문자열이 포함됩니다. PrintOptionHelp() 함수는 생성된 사용 출력의 섹션 제목으로 HelpGroupName을 사용합니다. 여러 OptionSet에 동일한 HelpGroupName이 있는 경우 PrintOptionHelp()는 서로 다른 OptionSet에 대한 옵션 도움말을 공통 섹션 제목에 함께 출력합니다.

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
)

이름이 지정된 환경 변수에서 인수 집합을 파싱합니다.

ParseArgsFromEnvVar()는 이름이 지정된 환경 변수를 읽고 파싱을 위해 값을 ParseArgsFromString()에 전달합니다. 환경 변수가 설정되지 않은 경우 함수는 아무 작업도 하지 않습니다.

세부정보
매개변수
[in] progName
인수가 파싱되는 프로그램 또는 컨텍스트의 이름입니다. 이 문자열은 오류 메시지 및 경고의 접두사를 지정하는 데 사용됩니다.
[in] varName
환경 변수의 이름입니다.
[in] optSets
법적 옵션을 정의하는 OptionSet 구조체 포인터 목록입니다. 제공된 목록은 NULL로 끝나야 합니다.
[in] nonOptArgHandler
옵션 파싱이 나머지 모든 비 옵션 인수로 완료되면 호출될 함수에 대한 포인터입니다 . 이 함수는 인수가 남아 있는지 여부에 관계없이 호출됩니다. NULL이 전달되면 ParseArgs()는 옵션이 아닌 인수가 있으면 오류를 보고합니다.
[in] ignoreUnknown
true인 경우 인식할 수 없는 옵션을 자동으로 무시합니다.
반환
모든 옵션과 비옵션 인수가 성공적으로 파싱되었거나 지정된 환경 변수가 설정되지 않은 경우 true, 옵션이 인식되지 않은 경우, 핸들러 함수 중 하나가 실패 (즉, false 반환)되거나 내부 오류가 발생한 경우 false입니다.

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
)

주어진 문자열에서 인수 집합을 파싱합니다.

ParseArgsFromString()은 지정된 문자열 (argStr)을 인수 집합으로 분할하고 ParseArgs() 함수를 사용하여 인수를 파싱합니다.

세부정보
매개변수
[in] progName
인수가 파싱되는 프로그램 또는 컨텍스트의 이름입니다. 이 문자열은 오류 메시지 및 경고의 접두사를 지정하는 데 사용됩니다.
[in] argStr
파싱할 옵션과 인수가 포함된 문자열입니다.
[in] optSets
법적 옵션을 정의하는 OptionSet 구조체 포인터 목록입니다. 제공된 목록은 NULL로 끝나야 합니다.
[in] nonOptArgHandler
옵션 파싱이 나머지 모든 비 옵션 인수로 완료되면 호출될 함수에 대한 포인터입니다 . 이 함수는 인수가 남아 있는지 여부에 관계없이 호출됩니다. NULL이 전달되면 ParseArgs()는 옵션이 아닌 인수가 있으면 오류를 보고합니다.
[in] ignoreUnknown
true인 경우 인식할 수 없는 옵션을 자동으로 무시합니다.
반환
모든 옵션과 비옵션 인수가 성공적으로 파싱된 경우 true, 옵션이 인식되지 않거나 핸들러 함수 중 하나가 실패 (즉, false 반환)되거나 내부 오류가 발생한 경우 false입니다.

입력 문자열의 구문은 Unix 셸 명령어 구문과 비슷하지만 단순화된 따옴표 스키마를 사용합니다. 특히 다음에 주의해야 합니다.

  • 공백이 따옴표로 묶거나 이스케이프 처리되지 않는 한 인수는 공백으로 구분됩니다.
  • 백슬래시는 다음 문자를 이스케이프 처리하여 일반 문자로 취급합니다. 백슬래시 자체는 제거됩니다.
  • 작은따옴표 또는 큰따옴표는 따옴표로 묶인 하위 문자열의 시작/끝에 있습니다. 하위 문자열 내에서 특수문자는 다음 문자와 해당하는 끝 따옴표를 이스케이프하는 백슬래시입니다. 시작/끝 따옴표 문자는 제거됩니다.

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
)

문자열을 불리언 값으로 파싱합니다.

이 함수에는 'true', 'yes', 't', 'y', '1', 'false', 'no', 'f', 'n', '0'의 입력값이 허용됩니다 (대소문자를 구분하지 않음).

세부정보
매개변수
[in] str
파싱할 값을 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부울의 저장에 대한 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseFabricId

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

텍스트 형식으로 Weave 패브릭 ID를 파싱합니다.

ParseFabricId() 함수는 16진수 형식으로 주어진 64비트 패브릭 ID를 허용하며, 앞에 '0x'가 붙어 있거나 없습니다.

세부정보
매개변수
[in] str
파싱할 패브릭 ID가 포함된 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
파싱된 값이 성공 시 저장되는 uint64_t lvalue에 대한 참조입니다.
[in] allowReserved
true인 경우 예약된 범위의 패브릭 ID 파싱을 허용합니다.
반환
값이 성공적으로 파싱된 경우 true이고 그렇지 않은 경우 false입니다.

ParseHexString

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

16진수 형식으로 제공된 바이트 문자열을 파싱합니다.

ParseHexString()은 16진수 쌍 (대문자 또는 소문자) 형식이어야 합니다. 16진수 쌍은 선택적으로 콜론, 세미콜론, 쉼표, 마침표 또는 대시로 구분할 수 있습니다. 또한 입력 문자열의 모든 공백 문자는 무시됩니다.

세부정보
매개변수
[in] hexStr
파싱할 문자열에 대한 포인터입니다.
[in] strLen
파싱할 16진수 문자의 문자 수입니다.
[in] outBuf
파싱 바이트가 저장될 버퍼에 대한 포인터입니다.
[in] outBufSize
outBuf가 가리키는 버퍼의 크기입니다.
[out] outDataLen
파싱된 총 바이트 수를 수신하는 정수에 대한 참조입니다. outBuf가 지정된 바이트 수를 유지할 만큼 크지 않은 경우 outDataLen가 UINT32_MAX로 설정됩니다.
반환
값이 파싱된 경우 true이고, 입력 데이터의 형식이 잘못되었거나 outBuf이 너무 작은 경우 false입니다.

ParseIPAddress

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

텍스트 형식으로 IP 주소를 파싱합니다.

세부정보
매개변수
[in] str
파싱할 주소가 포함된 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 IPAddress 객체에 대한 참조입니다.
반환
값이 성공적으로 파싱된 경우 true이고 그렇지 않은 경우 false입니다.

ParseInt

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

문자열을 파싱하고 부호 없는 64비트 정수로 변환하려고 시도하며 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 64비트 정수의 저장소에 대한 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기본 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 '0x'가 접두사로 붙을 수 있습니다. 그렇지 않으면 8이 암시되는 선행 0이 있지 않는 한 0은 10으로 간주됩니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

문자열을 부호 없는 32비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 32비트 정수의 저장소에 대한 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기본 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 '0x'가 접두사로 붙을 수 있습니다. 그렇지 않으면 8이 암시되는 선행 0이 있지 않는 한 0은 10으로 간주됩니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

문자열을 파싱하고 부호 있는 32비트 정수로 변환하려고 시도하며 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 있는 32비트 정수의 저장소 참조입니다.
[in] base
문자열을 해석하고 파싱해야 하는 기본 기준입니다. 0 또는 16인 경우 문자열은 16진수이고 '0x'가 접두사로 붙을 수 있습니다. 그렇지 않으면 8이 암시되는 선행 0이 있지 않는 한 0은 10으로 간주됩니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

십진수 값으로 해석된 문자열을 부호 없는 64비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 64비트 정수의 저장소에 대한 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

십진수 값으로 해석된 문자열을 부호 없는 32비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 32비트 정수의 저장소에 대한 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

10진수 값으로 해석된 문자열을 부호 있는 32비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 있는 32비트 정수의 저장소 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

십진수 값으로 해석된 문자열을 부호 없는 16비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 16비트 정수의 저장소에 대한 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

십진수 값으로 해석된 문자열을 부호 있는 16비트 정수로 파싱하고 변환하려고 시도하며, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 있는 16비트 정수의 저장소 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseInt

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

십진수 값으로 해석된 문자열을 부호 없는 8비트 정수로 파싱하고 변환하려고 시도하고, 기본 매개변수를 기반으로 적절한 해석을 적용합니다.

세부정보
매개변수
[in] str
파싱할 정수를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
성공 시 파싱된 값이 저장되는 부호 없는 8비트 정수의 저장소 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

ParseNodeId

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

텍스트 형식으로 Weave 노드 ID를 파싱합니다.

ParseNodeId() 함수는 16진수 형식 (앞에 '0x'가 있거나 없는)으로 제공된 64비트 노드 ID 또는 임의 노드 ID (0xFFFFFFFFFFFFFFFF를 의미함)로 해석되는 'any' 또는 'all'을 허용합니다.

세부정보
매개변수
[in] str
파싱할 노드 ID를 포함하는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[out] output
파싱된 값이 성공 시 저장되는 uint64_t lvalue에 대한 참조입니다.
반환
값이 성공적으로 파싱된 경우 true이고 그렇지 않은 경우 false입니다.

ParseSubnetId

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

문자열을 16진수로 해석하여 문자열을 파싱하고 부호 없는 16비트 서브넷 ID로 변환하려고 시도합니다.

세부정보
매개변수
[in] str
파싱할 16진수 형식의 서브넷 ID를 나타내는 NULL로 끝나는 C 문자열에 대한 포인터입니다.
[in,out] subnetId
파싱된 서브넷 ID 값이 성공 시 저장되는 부호 없는 16비트 정수의 저장소에 대한 참조입니다.
반환
성공 시 true이고 그렇지 않은 경우 실패 시 false입니다.

PrintOptionHelp

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

지정된 옵션 목록의 도움말 텍스트를 스트림에 출력합니다.

세부정보
매개변수
[in] optSets
출력할 도움말 텍스트가 포함된 OptionSet 구조체의 포인터 목록입니다.
[in] s
도움말 텍스트를 출력해야 하는 FILE 스트림입니다.

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
)