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

情報オプション(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 に設定する必要があります。引数の解析は second 配列要素(argv[1])で始まり、要素 0 は無視されます。
[in] optSets
法的オプションを定義する OptionSet 構造体へのポインタのリスト。指定したリストは NULL で終了する必要があります。
[in] nonOptArgHandler
オプション以外の引数が残っている場合、オプションの解析が完了すると呼び出される関数へのポインタ。この関数は、引数が残っているかどうかにかかわらず呼び出されます。NULL が渡されると、オプション以外の引数が存在する場合、ParseArgs() はエラーを報告します。
[in] ignoreUnknown
true の場合、認識できないオプションを通知なく無視します。
戻り値
すべてのオプションとオプション以外の引数が正常に解析された場合は true。オプションが認識されなかった場合、またはハンドラ関数の 1 つが失敗した場合(つまり false が返された場合)は false

オプションの定義は、OptionSet 構造体(optSets)の配列として ParseArgs() に渡されます。各 OptionSet にはオプション定義の配列とハンドラ関数が含まれます。ParseArgs() は指定された順序でオプション引数を処理し、認識されたオプションごとにそれぞれのハンドラ関数を呼び出します。すべてのオプションが解析されると、別の非オプション ハンドラ関数(nonOptArgHandler)が 1 回呼び出され、残りの引数がすべて処理されます。

オプション セット

OptionSet には、一連のオプション定義と、関連するオプションのいずれかが検出されたときに呼び出されるハンドラ関数へのポインタが含まれます。オプション セットには、各オプションの構文と目的を説明するヘルプテキストも含まれています(後述の「オプション ヘルプ」を参照)。オプション セットは、関連オプションの再利用可能な集合体を作成できるように設計されています。これにより、同様のオプション(テスト アプリケーションなど)を受け入れる複数のアプリケーションを維持するために必要な作業が簡単になります。

OptionSetsone を定義する方法は 2 つあります。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 は、オプション ID が表示される OptionSet に関連するため、異なる OptionSet 間で再利用できます(ただし、下記の短縮オプションをご覧ください)。通常、オプション ID の番号付けは 1000 から開始しますが、128 を超える任意の番号を使用できます。エイリアス オプションを作成するには、同じオプション ID に異なるオプション名を使用します。

ショートカット

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

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

オプション ヘルプ

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

慣例として、オプションのヘルプ文字列は、構文例の後にオプションの説明を続けて記述します。オプションに短縮名やエイリアス名がある場合は、メインの正式名の前に表示されます。一貫性を確保するために、構文行は 2 つのスペースでインデントされ、説明行は 7 つのスペースでインデントされます。各オプションの説明の後に、最後の 1 行を含む空白行が 1 行挿入されます。

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

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

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 オプションが認識されなかった場合、いずれかのハンドラ関数が失敗した場合(つまり、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、オプションが認識されなかった場合、ハンドラ関数の 1 つが失敗した場合(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
解析する 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 進数として解釈された文字列を解析し、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
)

base パラメータに基づいて適切な解釈を適用して、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
)

base パラメータに基づいて適切な解釈を適用して、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」は任意)か、「any」または「all」という単語を受け入れます。「any」または「all」は、任意のノード 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
ヘルプテキストの出力先となるファイル ストリーム。

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
)