nl:ArgParser

Özet

Sıralamalar

OptionArgumentType enum
Bir komut satırı seçeneği için bağımsız değişken gereksinimlerini tanımlar.

Türler

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) Tür
bool(*
Seçenek olmayan diğer komut satırı bağımsız değişkenlerini işlemek için çağrılabilecek bir işlev.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) Tür
bool(*
Bir komut satırı seçenekleri grubunu işlemek için çağrılabilecek bir işlev.

Değişkenler

PrintArgError = DefaultPrintArgError)(const char *msg,...)
void(*
Bağımsız değişken ayrıştırma sırasında oluşan hataları yazdırmak için kullanılan işaretçi.
gActiveOptionSets = NULL
Şu anda etkin olan ParseArgs() çağrısına iletilen OptionSet'lerin listesi.

İşlevler

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
Bağımsız değişken ayrıştırma ile ilgili bir hata mesajı yazdırın.
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
Her bir seçeneği ve seçenek olmayan bağımsız değişkeni işlemek için işleme işlevlerini çağırarak bir komut satırı stili bağımsız değişkenlerini ayrıştırın.
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
Adlandırılmış bir ortam değişkeninden bir bağımsız değişken grubu ayrıştırır.
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
Belirli bir dizeden bir bağımsız değişken grubu ayrıştırır.
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
Bir dizeyi boole değeri olarak ayrıştırma.
ParseFabricId(const char *str, uint64_t & fabricId, bool allowReserved)
bool
Dokuma kumaş kimliğini metin biçiminde ayrıştırın.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
Onaltılık biçimde verilen bayt dizesini ayrıştırın.
ParseIPAddress(const char *str, IPAddress & output)
bool
IP adresini metin biçiminde ayrıştırın.
ParseInt(const char *str, uint64_t & output, int base)
bool
Bir dizeyi ayrıştırıp 64 bit imzalanmamış bir tamsayıya dönüştürmeyi deneyin. Bunu, temel parametreye dayalı olarak uygun yorumlamayı uygulayın.
ParseInt(const char *str, uint32_t & output, int base)
bool
Bir dizeyi ayrıştırıp temel parametreye göre uygun yorumlamayı uygulayarak 32 bit imzasız bir tam sayıya dönüştürmeyi deneyin.
ParseInt(const char *str, int32_t & output, int base)
bool
Bir dizeyi ayrıştırıp temel parametreye göre uygun yorumlamayı uygulayarak 32 bit imzalı bir tam sayıya dönüştürmeyi deneyin.
ParseInt(const char *str, uint64_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 64 bit imzasız bir tam sayıya dönüştürün.
ParseInt(const char *str, uint32_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi temel parametreye göre uygun şekilde uygulayarak 32 bit imzasız bir tam sayıya dönüştürün.
ParseInt(const char *str, int32_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi temel parametreye göre uygun şekilde uygulayarak 32 bit imzalı bir tam sayıya dönüştürün ve dönüştürün.
ParseInt(const char *str, uint16_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 16 bit imzasız bir tam sayıya dönüştürün.
ParseInt(const char *str, int16_t & output)
bool
Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 16 bit imzalı bir tam sayıya dönüştürün ve dönüştürün.
ParseInt(const char *str, uint8_t & output)
bool
Taban parametresine göre uygun yorumlamayı uygulayarak, ondalık değer olarak yorumlanan bir dizeyi 8 bit imzasız tam sayıya dönüştürmeye çalışın.
ParseNodeId(const char *str, uint64_t & nodeId)
bool
Metin biçiminde bir Weave düğüm kimliği ayrıştırır.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
Bir dizeyi ayrıştırıp 16 bit imzasız alt ağ kimliğine dönüştürmeyi deneyerek dizeyi on altılı olarak yorumlayın.
PrintOptionHelp(OptionSet *optSets[], FILE *s)
void
Belirli bir seçenek listesi için yardım metnini akışa yazdırın.
PutStringWithBlankLine(FILE *s, const char *str)
void
PutStringWithNewLine(FILE *s, const char *str)
void
SplitArgs(char *argStr, char **& argList, char *initialArg)
int32_t

Sınıflar

nl::ArgParser::YardımSeçenekleri

Bilgilendirme seçeneklerinin (yardım, sürüm) işlenmesi için yaygın olarak kullanılan OptionSet.

nl::ArgParser::OptionSetBase

İşleyicinin sanal bir işlev olduğu OptionSet.

Struct

nl::ArgParser::OptionDef

Bir komut satırı seçeneği tanımlar.

nl::ArgParser::OptionSet

Mantıksal olarak ilişkili ve yeniden kullanılabilir komut satırı seçeneklerini tanımlar.

Sıralamalar

OptionArgumentType

 OptionArgumentType

Bir komut satırı seçeneği için bağımsız değişken gereksinimlerini tanımlar.

Türler

NonOptionArgHandlerFunct

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

Seçenek olmayan diğer komut satırı bağımsız değişkenlerini işlemek için çağrılabilecek bir işlev.

OptionHandlerFunct

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

Bir komut satırı seçenekleri grubunu işlemek için çağrılabilecek bir işlev.

Değişkenler

PrintArgError

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

Bağımsız değişken ayrıştırma sırasında oluşan hataları yazdırmak için kullanılan işaretçi.

Uygulamalar, doğrudan stdout/stderr öğesine yazdırmak yerine kendi seçeneklerine ve seçenek olmayan bağımsız değişken işleme işlevlerine ilişkin hataları bildirmek için PrintArgError() yöntemini çağırmalıdır.

Varsayılan olarak, DefaultPrintArgError() işlevi için bir işaretçiye ayarlanır.

gActiveOptionSets

OptionSet ** gActiveOptionSets = NULL

Şu anda etkin olan ParseArgs() çağrısına iletilen OptionSet'lerin listesi.

Devam eden bir ParseArgs() çağrısı olmadığında bu değer NULL olacaktır.

İşlevler

CountAllOptions

size_t CountAllOptions(
  OptionSet *optSets[]
)

CountAllOptions

size_t CountAllOptions(
  OptionSet **optSets
)

CountOption Setleri

size_t CountOptionSets(
  OptionSet *optSets[]
)

CountOption Setleri

size_t CountOptionSets(
  OptionSet **optSets
)

DefaultPrintArgError

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

Bağımsız değişken ayrıştırma ile ilgili bir hata mesajı yazdırın.

Bağımsız değişkenlerin ayrıştırılması nedeniyle ortaya çıkan hata mesajlarını yazdırmak için kullanılan varsayılan işlev.

Ayrıntılar
Parametreler
[in] msg
Yazdırılacak ileti.

Uygulamalar bu işlevi doğrudan çağırmak yerine PrintArgError işlev işaretçisini kullanarak çağrı yapmalıdır.

FindOptionById

void FindOptionById(
  OptionSet **optSets,
  int optId,
  OptionSet *& optSet,
  OptionDef *& optDef
)

FindOptionByIndex

void FindOptionByIndex(
  OptionSet **optSets,
  int optIndex,
  OptionSet *& optSet,
  OptionDef *& optDef
)

AlmaSonraki Argı

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[]
)

Parse Arg'lar

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler,
  bool ignoreUnknown
)

Her bir seçeneği ve seçenek olmayan bağımsız değişkeni işlemek için işleme işlevlerini çağırarak bir komut satırı stili bağımsız değişkenlerini ayrıştırın.

ParseArgs(), bağımsız değişkenlerin (argv) listesini alır ve sağlanan bir dizi seçenek tanımına göre ayrıştırır. İşlev, hem uzun (opt) hem de kısa (-o) seçenekleri destekler ve GNU getopt_long(3) işleviyle aynı seçenek söz dizimini uygular.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın adı veya bağlam. Bu dize, hata mesajlarının ve uyarıların ön eki için kullanılır.
[in] argc
Ayrıştırılacak bağımsız değişken sayısı ve 1.
[in] argv
Ayrıştırılacak bağımsız değişken dizeleri. Dizi uzunluğu, argc için belirtilen değerden 1 büyük olmalıdır ve argv[argc] NULL olarak ayarlanmalıdır. Bağımsız değişken ayrıştırması ikinci dizi öğesiyle (argv[1]) başlar; 0. öğe yoksayılır.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarının işaretçi listesi. Sağlanan liste NULL ile sonlandırılmalıdır.
[in] nonOptArgHandler
Diğer seçenek olmayan bağımsız değişkenlerle birlikte seçenek ayrıştırma tamamlandıktan sonra çağrılacak bir işlevin işaretçisi . İşlev, bağımsız değişkenlerden hangisinin kaldığına bakılmaksızın çağrılır. NULL aktarılırsa ParseArgs() seçenek olmayan bağımsız değişken varsa hata bildirir.
[in] ignoreUnknown
Doğru değerine ayarlanırsa tanınmayan seçenekleri sessizce yoksayın.
İadeler
Tüm seçenekler ve seçenek olmayan bağımsız değişkenler başarıyla ayrıştırıldıysa true; bir seçenek tanınmazsa veya işleyici işlevlerinden biri başarısız olduysa (yani yanlış döndürürse). false

Seçenek tanımları ParseArgs()'a OptionSet yapıları (optSets) dizisi olarak iletilir. Her OptionSet, seçenek tanımları dizisi ve işleyici işlevi içerir. ParseArgs(), seçenek bağımsız değişkenlerini belirtilen sırada işler ve tanınan her seçenek için ilgili işleyici işlevini çağırır. Tüm seçenekler ayrıştırıldıktan sonra, kalan bağımsız değişkenlerin işlenmesi için ayrı bir seçenek olmayan işleyici işlevi (nonOptArgHandler) bir kez çağrılır.

SEÇENEK AYARLARI

OptionSet, ilişkili seçeneklerden biriyle karşılaşıldığında bir işleyici işlevine dair bir işaretçinin yanı sıra seçenek tanımları grubunu içerir. Seçenek kümeleri, her bir söz diziminin söz dizimini ve amacını açıklayan yardım metnini de içerir (aşağıdaki SEÇENEK BELİRTİN). Seçenek grupları, ilgili seçeneklerin yeniden kullanılabilir koleksiyonlarının oluşturulmasına izin verecek şekilde tasarlanmıştır. Bu, benzer seçenekleri kabul eden birden fazla uygulamayı (ör. test uygulamaları) sürdürmek için gereken çabayı basitleştirir.

OptionSetsone'un OptionSet yapısının bir örneğini başlatabileceğini (ör. statik bir global seçenek veya alt sınıf OptionSetBase) ve bir oluşturucu sağlayabileceğini gösteren iki kalıp vardır. İkinci sınıf, seçenek işlemeyi alt sınıfa atamak için yalnızca bir sanal HandleOption() işlevi kullanır.

OptionSet'lerin listeleri, NULL ile sonlandırılmış işaretçi dizisi olarak ParseArgs() işlevine iletilir. Örnek:

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))
    {
        ...
    }
}

SEÇENEK TANIMLARI

Seçenekler, OptionDef yapısı kullanılarak tanımlanır. Seçenek tanımları, her öğenin içerdiği OptionDef öğeleri dizisi olarak düzenlenir. Seçeneğin adı, seçeneği tanımlamak için kullanılan bir tam sayı kimliği ve seçeneğin bir bağımsız değişken beklemesine izin verip vermemesidir. Seçenek dizisinin sonunda NULL Ad alanı bulunur. Örnek:

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

SEÇENEK KİMLİĞİ

Seçenek kimlikleri, seçenekleri işleyen koda ilişkin seçenekleri (OptionHandler işlevi) tanımlar. Seçenek kimlikleri, göründükleri OptionSet ile alakalıdır ve bu nedenle farklı OptionSet'lerde yeniden kullanılabilir (ancak aşağıdaki SHORT OPTIONS bölümüne bakın). Genel kural, 1000 numaralı numaralandırmaya başlamaktır, ancak herhangi bir sayı > 128 kullanılabilir. Takma ad seçenekleri, farklı seçenek adlarıyla aynı seçenek kimliği kullanılarak oluşturulabilir.

KISA SEÇENEKLER

getopt_long(3) aksine ParseArgs(), kısa seçenek karakterlerinin listesini belirten ayrı bir dize almaz. Daha ziyade, kimlik değeri grafik ASCII karakterleri aralığında olan herhangi bir seçenek, o karakterin kısa bir seçenek olarak kullanılmasına izin verir.

ParseArgs(), kısa seçenek karakterlerinin all OptionSet genelinde benzersiz olmasını gerektirir. Bu nedenle, çarpışma ihtimali yüksek olduğu için programlar arasında paylaşılan OptionSet'ler için kısa seçenekler kullanılamaz. Kısa seçenek karakterleri, takma ad uzun seçenek adlarının oluşturulmasına olanak tanımak için tek bir OptionSet içinde yeniden kullanılabilir.

YARDIM SEÇENEĞİ

Her OptionSet, ilişkili seçeneklerin amacını ve söz dizimini açıklayan bir OptionHelp dizesi içerir. Bu dizeler seçenek kullanım bilgilerini oluşturmak için PrintOptionHelp() işlevi tarafından kullanılır.

İsteğe bağlı olarak, seçenek yardım dizeleri, seçeneğin metin açıklamasından sonra gelen söz dizimi örneğinden oluşur. Seçeneğin kısa adı veya takma ad adı varsa birincil uzun addan önce verilir. Tutarlılık için söz dizimi satırları 2 boşlukla, açıklama satırları ise 7 boşlukla girintili hale gelir. Sonuncusu dahil olmak üzere her seçenek açıklamasının boş olduğu tek bir boş satır vardır.

Örnek:

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

YARDIM GRUPLARI SEÇ

Optionset'ler, yardım çıktısında seçenekleri gruplandırmak için kullanılan bir HelpGroupName dizesi içerir. PrintOptionHelp() işlevi, oluşturulan kullanım çıktısında bölüm başlığı olarak HelpGroupName kullanır. Birden fazla OptionSet aynı aynı GroupGroupName'ne sahipse PrintOptionHelp() ortak bir bölüm başlığı altında farklı OptionSet'ler için seçenek yardımını birlikte yazdırır.

Parse Arg'lar

bool ParseArgs(
  const char *progName,
  int argc,
  char *argv[],
  OptionSet *optSets[],
  NonOptionArgHandlerFunct nonOptArgHandler
)

Parse Arg'lar

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
)

Adlandırılmış bir ortam değişkeninden bir bağımsız değişken grubu ayrıştırır.

ParseArgsFromEnvVar(), adlandırılmış bir ortam değişkenini okur ve değeri ayrıştırmak için ParseArgsFromString() değerine iletir. Ortam değişkeni ayarlanmazsa işlev herhangi bir şey yapmaz.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın adı veya bağlam. Bu dize, hata mesajlarının ve uyarıların ön eki için kullanılır.
[in] varName
Ortam değişkeninin adı.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarının işaretçi listesi. Sağlanan liste NULL ile sonlandırılmalıdır.
[in] nonOptArgHandler
Diğer seçenek olmayan bağımsız değişkenlerle birlikte seçenek ayrıştırma tamamlandıktan sonra çağrılacak bir işlevin işaretçisi . İşlev, bağımsız değişkenlerden hangisinin kaldığına bakılmaksızın çağrılır. NULL aktarılırsa ParseArgs() seçenek olmayan bağımsız değişken varsa hata bildirir.
[in] ignoreUnknown
Doğru değerine ayarlanırsa tanınmayan seçenekleri sessizce yoksayın.
İadeler
true Tüm seçenekler ve seçenek dışı bağımsız değişkenler başarıyla ayrıştırıldıysa veya belirtilen ortam değişkeni ayarlanmadıysa; false bir seçenek tanınmadıysa, işleyici işlevlerinden biri başarısız olduysa (ör. yanlış döndürüldiyse) veya dahili bir hata oluştuysa.

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
)

Belirli bir dizeden bir bağımsız değişken grubu ayrıştırır.

ParseArgsFromString(), belirli bir dizeyi (argStr) bir bağımsız değişken grubuna böler ve ParseArgs() işlevini kullanarak bağımsız değişkenleri ayrıştırır.

Ayrıntılar
Parametreler
[in] progName
Bağımsız değişkenlerin ayrıştırıldığı programın adı veya bağlam. Bu dize, hata mesajlarının ve uyarıların ön eki için kullanılır.
[in] argStr
Ayrıştırılacak seçenekleri ve bağımsız değişkenleri içeren bir dize.
[in] optSets
Yasal seçenekleri tanımlayan OptionSet yapılarının işaretçi listesi. Sağlanan liste NULL ile sonlandırılmalıdır.
[in] nonOptArgHandler
Diğer seçenek olmayan bağımsız değişkenlerle birlikte seçenek ayrıştırma tamamlandıktan sonra çağrılacak bir işlevin işaretçisi . İşlev, bağımsız değişkenlerden hangisinin kaldığına bakılmaksızın çağrılır. NULL aktarılırsa ParseArgs() seçenek olmayan bağımsız değişken varsa hata bildirir.
[in] ignoreUnknown
Doğru değerine ayarlanırsa tanınmayan seçenekleri sessizce yoksayın.
İadeler
Tüm seçenekler ve seçenek dışı bağımsız değişkenler başarıyla ayrıştırıldıysa true; bir seçenek tanınmazsa false; işleyici işlevlerinden biri başarısız olduysa (yani yanlış döndürülürse) veya dahili bir hata oluşursa.

Giriş dizelerinin söz dizimi, basitleştirilmiş bir alıntı düzeniyle birlikte unix kabuk komutu söz dizimine benzer. Özellikle:

  • Boşluklar tırnak içine alınmadığı veya çıkış karaktersiz olmadığı sürece, bağımsız değişkenler boşlukla ayrılır.
  • Ters eğik çizgi aşağıdaki karakterden çıkış yaparak normal karakter olarak değerlendirilmesine neden olur. Ters eğik çizgi çizgisinin kendisi çıkartılır.
  • Tek veya çift tırnak başlangıcı/bitişi olan tırnak işaretleri. Alt dize içinde tek özel karakterler, ters eğik çizgidir (bir sonraki karaktere çıkış karakteri verir ve karşılık gelen bitiş alıntısıdır). Başlangıç/bitiş fiyat teklifi karakterleri çıkartılır.

Örnek:

--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[]
)

ParseBoole

bool ParseBoolean(
  const char *str,
  bool & output
)

Bir dizeyi boole değeri olarak ayrıştırma.

Bu işlev şu giriş değerlerini kabul eder: (büyük/küçük harfe duyarlı değil): "true", "#", "1", "1", "false", "no", "no", "#", "#"

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak değeri temsil eden NULL sonlandırılmış bir C dizesine işaretçi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı bir Bool için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

Parsefabrik Kimliği

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

Dokuma kumaş kimliğini metin biçiminde ayrıştırın.

ParseFabricId() işlevi, onaltılık biçimde ve önde '0x' olacak şekilde verilen 64 bit kumaş kimliğini kabul eder.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak kumaş kimliğini içeren NULL sonlandırılmış bir C dizesine işaretçi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı bir uint64_t lvalue referansı.
[in] allowReserved
Doğruysa ayrılmış aralıktaki kumaş kimliklerinin ayrıştırılmasına izin verin.
İadeler
değer başarıyla ayrıştırıldıysa true (doğru değilse) false (yanlış) değerini alır.

Par OnaltılıkDize

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

Onaltılık biçimde verilen bayt dizesini ayrıştırın.

ParseHexString(), girişin on altılık basamak çifti (büyük veya küçük) biçiminde olmasını bekler. Onaltılık çiftler, isteğe bağlı olarak şu karakterlerden herhangi biriyle ayrılabilir: iki nokta üst üste, noktalı virgül, virgül, nokta veya kısa çizgi. Buna ek olarak, giriş dizesinin herhangi bir yerinde boşluk karakterleri yoksayılır.

Ayrıntılar
Parametreler
[in] hexStr
Ayrıştırılacak dizenin işaretçisi.
[in] strLen
Onaltılık basamakta ayrıştırılacak karakter sayısı.
[in] outBuf
Ayrıştırma baytlarının depolanacağı bir arabelleğe alınan işaretçi.
[in] outBufSize
outBuf değerinin işaret ettiği arabellek boyutu.
[out] outDataLen
Ayrıştırılan toplam bayt sayısını alacak bir tam sayı referansı. outBuf belirtilen bayt sayısını bulamayacak kadar büyükse outDataLen, UINT32_MAX olarak ayarlanır.
İadeler
Değer başarıyla ayrıştırıldıysa true (doğru), giriş verileri bozuksa veya outBuf çok küçükse false (yanlış) değerini alır.

ParseIPAdresi

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

IP adresini metin biçiminde ayrıştırın.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak adresi içeren NULL sonlandırılmış bir C dizesine işaretçi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı bir IPAddress nesnesine referans.
İadeler
değer başarıyla ayrıştırıldıysa true (doğru değilse) false (yanlış) değerini alır.

ParseInt

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

Bir dizeyi ayrıştırıp 64 bit imzalanmamış bir tamsayıya dönüştürmeyi deneyin. Bunu, temel parametreye dayalı olarak uygun yorumlamayı uygulayın.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 64 bit imzasız bir tam sayı için depolama referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve başında "0x" olabilir. Aksi halde, 0, 8 ima edildiği ile karşılaşılmadığı sürece 0, 10 olarak ima edilir.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Bir dizeyi ayrıştırıp temel parametreye göre uygun yorumlamayı uygulayarak 32 bit imzasız bir tam sayıya dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 32 bit imzasız bir tam sayı için depolama referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve başında "0x" olabilir. Aksi halde, 0, 8 ima edildiği ile karşılaşılmadığı sürece 0, 10 olarak ima edilir.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Bir dizeyi ayrıştırıp temel parametreye göre uygun yorumlamayı uygulayarak 32 bit imzalı bir tam sayıya dönüştürmeyi deneyin.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı 32 bit imzalı bir tam sayı için depolama referansı.
[in] base
Dizenin yorumlanması ve ayrıştırılması gereken taban. 0 veya 16 ise dize on altılı olabilir ve başında "0x" olabilir. Aksi halde, 0, 8 ima edildiği ile karşılaşılmadığı sürece 0, 10 olarak ima edilir.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 64 bit imzasız bir tam sayıya dönüştürün.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 64 bit imzasız bir tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi temel parametreye göre uygun şekilde uygulayarak 32 bit imzasız bir tam sayıya dönüştürün.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 32 bit imzasız bir tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi temel parametreye göre uygun şekilde uygulayarak 32 bit imzalı bir tam sayıya dönüştürün ve dönüştürün.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı 32 bit imzalı bir tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 16 bit imzasız bir tam sayıya dönüştürün.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 16 bit imzasız tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Ondalık değer olarak yorumlanan bir dizeyi taban parametresine göre uygun şekilde uygulayarak 16 bit imzalı bir tam sayıya dönüştürün ve dönüştürün.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 16 bit imzalı tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseInt

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

Taban parametresine göre uygun yorumlamayı uygulayarak, ondalık değer olarak yorumlanan bir dizeyi 8 bit imzasız tam sayıya dönüştürmeye çalışın.

Ayrıntılar
Parametreler
[in] str
NULL ile sonlandırılmış C dizesinin ayrıştırılacak tam sayıyı temsil eden işaretçisi.
[out] output
Ayrıştırılmış değerin başarıyla depolanacağı 8 bitlik bir imzasız tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

ParseNodeId

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

Metin biçiminde bir Weave düğüm kimliği ayrıştırır.

ParseNodeId() işlevi, onaltılık biçimde (bir &&33;0x' ile birlikte veya olmadan) verilen 64 bit düğüm kimliğini veya herhangi bir düğüm kimliği (0xFFFFFFFFFFFFFF) olarak yorumlanan 'any' veya 'all' kelimelerini kabul eder.

Ayrıntılar
Parametreler
[in] str
Ayrıştırılacak düğüm kimliğini içeren NULL sonlandırılmış bir C dizesine işaretçi.
[out] output
Ayrıştırılan değerin başarıyla depolanacağı bir uint64_t lvalue referansı.
İadeler
değer başarıyla ayrıştırıldıysa true (doğru değilse) false (yanlış) değerini alır.

ParseSubnetId

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

Bir dizeyi ayrıştırıp 16 bit imzasız alt ağ kimliğine dönüştürmeyi deneyerek dizeyi on altılı olarak yorumlayın.

Ayrıntılar
Parametreler
[in] str
Alt ağ kimliğini temsil eden ve ayrıştırmak için onaltılık olarak biçimlendirilmiş, NULL sonlandırılmış bir C dizesine işaretçi.
[in,out] subnetId
Ayrıştırılmış alt ağ kimliği değerinin başarıyla depolanacağı 16 bit imzasız tam sayı için depolama referansı.
İadeler
Başarılar doğru, aksi takdirde yanlış cevap vermek yanlıştır.

Yazdırma Seçeneği Yardımı

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

Belirli bir seçenek listesi için yardım metnini akışa yazdırın.

Ayrıntılar
Parametreler
[in] optSets
Yazdırılacak yardım metnini içeren OptionSet yapılarının işaretçi listesi.
[in] s
Yardım metninin yazdırılacağı FILE akışı.

PutString withBoş Satır

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
)