Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

nl::ArgParser

まとめ

列挙型

OptionArgumentType 列挙型
コマンドライン オプションの引数要件を定義します。

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(*
一連のコマンドライン オプションを処理するために呼び出すことができる関数。

Variables

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
引数の解析中に発生したエラーを出力する関数へのポインタ。
gActiveOptionSets = NULL
現在アクティブな ParseArgs() 呼び出しに渡される OptionSets のリスト。

Functions

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
10 進数として解釈される文字列を 64 ビット符号なし整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。
ParseInt(const char *str, uint32_t & output)
bool
10 進数として解釈される文字列を解析して、32 ビット符号なし整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。
ParseInt(const char *str, int32_t & output)
bool
10 進数として解釈される文字列を解析して、32 ビット符号付き整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。
ParseInt(const char *str, uint16_t & output)
bool
10 進数として解釈される文字列を解析して、16 ビットの符号なし整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。
ParseInt(const char *str, int16_t & output)
bool
10 進数として解釈された文字列を解析して、16 ビットの符号付き整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。
ParseInt(const char *str, uint8_t & output)
bool
10 進数として解釈される文字列を解析して、8 ビットの符号なし整数に変換し、ベース パラメータに応じて適切な解釈を適用します。
ParseNodeId(const char *str, uint64_t & nodeId)
bool
テキスト形式の Weave ノード ID を解析します。
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
文字列を解析し、16 ビットの符号なしサブネット ID に変換して、文字列を 16 進数として解釈します。
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)

一連のコマンドライン オプションを処理するために呼び出すことができる関数。

Variables

PrintArgError

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

引数の解析中に発生したエラーを出力する関数へのポインタ。

アプリケーションは、stdout/stderr に直接出力するのではなく、オプションとオプションの引数処理関数でエラーを報告するために、PrintArgError() を呼び出す必要があります。

デフォルトは、DefaultPrintArgError() 関数へのポインタです。

gActiveOptionSets(gActiveOptionSets)

OptionSet ** gActiveOptionSets = NULL

現在アクティブな ParseArgs() 呼び出しに渡される OptionSets のリスト。

ParseArgs() への呼び出しが進行中でない場合、この値は NULL になります。

Functions

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
)

メイク長さ

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)を取り、指定されたオプション定義のセットに従って解析します。この関数は、長いオプション(opt)と短いオプション(-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)が 1 回呼び出され、残りの引数が処理されます。

オプションセット

OptionSet には、オプション定義のセットと、関連付けられたオプションのいずれかが発生したときに呼び出されるハンドラ関数へのポインタが含まれています。オプション セットには、各オプションの構文と目的を説明するヘルプテキストも含まれています(以下のオプションのヘルプを参照)。オプション セットは、関連するオプションの再利用可能なコレクションを作成できるように設計されています。これにより、同じようなオプションを受け入れる複数のアプリケーション(テスト アプリケーションなど)を維持するのに必要な労力が軽減されます。

OptionSetsone を定義するには 2 つのパターンがあります。これは、OptionSet 構造体自体のインスタンスを静的なグローバルとして初期化する方法と、OptionSetBase のサブクラスを作成してコンストラクタを提供する方法です。後者は、純粋な仮想 HandleOption() 関数を使用して、オプション処理をサブクラスに委任します。

OptionSets のリストは、NULL で終わるポインタの配列として ParseArgs() 関数に渡されます。例:

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 フィールドによって通知されます。例:

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 で再利用できます(ただし、以下の SHORT OPTIONS を参照)。通常は 1000 から始まりますが、任意の数値 128 を使用できます。エイリアス オプションは、異なるオプション名で同じオプション ID を使用して作成できます。

短いオプション

getopt_long(3) とは異なり、ParseArgs() では短いオプション文字のリストを指定する別の文字列は使用されません。ID 値がグラフィカル ASCII 文字の範囲に収まるオプションであれば、その文字を短いオプションとして使用できます。

ParseArgs() では、短いオプション文字をすべての OptionSet にわたって一意にする必要があります。そのため、競合が発生する可能性が非常に高いため、プログラム間で共有されている OptionSet では短いオプションの使用は推奨されません。短いオプション文字は、1 つの OptionSet 内で再利用して、エイリアスの長いオプション名を作成できます。

オプションのヘルプ

OptionSet には、関連するオプションの目的と構文を説明する OptionHelp 文字列が含まれています。これらの文字列は、PrintOptionHelp() 関数でオプションの使用状況情報を生成するために使用されます。

慣例により、オプションのヘルプ文字列は、構文テキストの例とそれに続くテキスト形式の説明で構成されます。短いバージョンやエイリアス名がある場合は、メインロングネームの前に付けられます。一貫性を保つため、構文の行はスペース 2 つでインデントし、説明文はスペース 7 つでインデントします。各オプションの説明(最後の説明を含む)の後に空白行が 1 行あります。

例:

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

オプションのヘルプグループ

OptionSets には 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オプションが認識されなかった場合、ハンドラ関数の 1 つが失敗した場合(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オプションが認識されなかった場合、ハンドラ関数の 1 つが失敗した場合(false を返した場合)、または内部エラーが発生した場合。

入力文字列の構文は UNIX シェルコマンドの構文と似ていますが、引用符のスキームが簡略化されています。具体的には次のとおりです。

  • 引数は、空白文字が引用符で囲まれたりエスケープされたりしない限り、空白文字で区切られます。
  • バックスラッシュによって次の文字がエスケープされ、通常の文字として扱われます。バックスラッシュ自体は削除されます。
  • 単一引用符または二重引用符は、引用符で囲まれた部分文字列の先頭/末尾になります。部分文字列内の特殊文字はバックスラッシュだけです。バックスラッシュは、次の文字と対応する終了引用符をエスケープします。開始/終了引用符は削除されます。

例:

--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"、"no"、"f"、"、")

詳細
パラメータ
[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 を、先頭の「&x39;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
解析する hexStr の文字数。
[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」が付きます。それ以外の場合は、先頭に 0 があり、8 が暗黙的に示されていない限り、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」が付きます。それ以外の場合は、先頭に 0 があり、8 が暗黙的に示されていない限り、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」が付きます。それ以外の場合は、先頭に 0 があり、8 が暗黙的に示されていない限り、0 は 10 として暗黙的に指定されます。
戻り値
成功した場合は true、失敗した場合は false。

ParseInt

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

10 進数として解釈される文字列を 64 ビット符号なし整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。

詳細
パラメータ
[in] str
解析する整数を表す、NULL で終わる C 文字列へのポインタ。
[out] output
解析時に値が正常に保存される、64 ビット符号なし整数のストレージへの参照。
戻り値
成功した場合は true、失敗した場合は false。

ParseInt

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

10 進数として解釈される文字列を解析して、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
)

10 進数として解釈される文字列を解析して、16 ビットの符号なし整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。

詳細
パラメータ
[in] str
解析する整数を表す、NULL で終わる C 文字列へのポインタ。
[out] output
解析時に値が正常に保存される、16 ビット符号なし整数のストレージへの参照です。
戻り値
成功した場合は true、失敗した場合は false。

ParseInt

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

10 進数として解釈された文字列を解析して、16 ビットの符号付き整数に変換し、ベース パラメータに基づいて適切な解釈を適用します。

詳細
パラメータ
[in] str
解析する整数を表す、NULL で終わる C 文字列へのポインタ。
[out] output
解析時に値が正常に保存される、16 ビットの符号付き整数のストレージへの参照です。
戻り値
成功した場合は true、失敗した場合は false。

ParseInt

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

10 進数として解釈される文字列を解析して、8 ビットの符号なし整数に変換し、ベース パラメータに応じて適切な解釈を適用します。

詳細
パラメータ
[in] str
解析する整数を表す、NULL で終わる C 文字列へのポインタ。
[out] output
解析時に値が正常に保存される、8 ビットの符号なし整数のストレージへの参照です。
戻り値
成功した場合は true、失敗した場合は false。

ParseNodeId

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

テキスト形式の Weave ノード ID を解析します。

ParseNodeId() 関数は、16 進数で指定される 64 ビットのノード ID(先頭の '0x' の有無を問わず)、または任意のノード 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 ビットの符号なしサブネット ID に変換して、文字列を 16 進数として解釈します。

詳細
パラメータ
[in] str
解析するサブネット ID を表す、NULL で終わる C 文字列へのポインタ。16 進数の形式で指定します。
[in,out] subnetId
16 ビット符号なし整数のストレージへの参照です。解析時にサブネット ID の値が正常に保存されます。
戻り値
成功した場合は 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
)

SplitArg

int32_t SplitArgs(
  char *argStr,
  char **& argList,
  char *initialArg
)