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() 呼び出しに渡される OptionSet のリスト。

関数

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
base パラメータに基づいて適切な解釈を適用して、文字列を解析し、64 ビットの符号なし整数に変換します。
ParseInt(const char *str, uint32_t & output, int base)
bool
base パラメータに基づいて適切な解釈を適用して、文字列を解析し、32 ビットの符号なし整数に変換します。
ParseInt(const char *str, int32_t & output, int base)
bool
base パラメータに基づいて適切な解釈を適用して、文字列を解析し、32 ビット符号付き整数に変換します。
ParseInt(const char *str, uint64_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して 64 ビットの符号なし整数に変換します。
ParseInt(const char *str, uint32_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して 32 ビットの符号なし整数に変換します。
ParseInt(const char *str, int32_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して、32 ビット符号付き整数に変換します。
ParseInt(const char *str, uint16_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して、16 ビットの符号なし整数に変換します。
ParseInt(const char *str, int16_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して、16 ビット符号付き整数に変換します。
ParseInt(const char *str, uint8_t & output)
bool
10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して、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

情報オプション(help、version)を処理するための一般的な 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() 呼び出しに渡される OptionSet のリスト。

この値は、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 に設定する必要があります。引数の解析は 2 番目の配列要素(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() 関数を使用して、オプションの処理をサブクラスに委任します。

OptionSet のリストは、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 間で再利用できます(ただし、下記の「短いオプション」をご覧ください)。一般的な慣例では、オプション ID の番号は 1, 000 から開始しますが、任意の数 >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";

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

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 シェルコマンドの構文に似ていますが、引用符のスキームが簡素化されています。詳細は以下のとおりです。

  • 引数は空白文字で区切られます(空白文字が引用符で囲まれている場合やエスケープされている場合は除きます)。
  • 後続の文字はバックスラッシュでエスケープされるため、通常の文字として扱われます。バックスラッシュ自体は削除されます。
  • 単一引用符または二重引用符は、引用符で囲まれた部分文字列の開始と終了に使用します。部分文字列内の特殊文字はバックスラッシュです。バックスラッシュは、次の文字とそれに対応する終了引用符をエスケープします。開始引用符と終了引用符は削除されます。

例:

--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
解析する 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
)

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
)

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
)

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 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して 64 ビットの符号なし整数に変換します。

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

ParseInt

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

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

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

ParseInt

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

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

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

ParseInt

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

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

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

ParseInt

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

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

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

ParseInt

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

10 進数として解釈された文字列を解析し、base パラメータに基づいて適切な解釈を適用して、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」の有無は問わない)か「any」を指定します。または「all」これは、Any ノード ID(0xFFFFFFFFFFFFFFFF)を意味するものと解釈されます。

詳細
パラメータ
[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
成功した場合は解析されたサブネット 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
)