nl::ArgParser

खास जानकारी

इन्यूमरेशन

OptionArgumentType enum
कमांड लाइन के विकल्प के लिए, आर्ग्युमेंट की ज़रूरी शर्तें तय करता है.

टाइपडिफ़

NonOptionArgHandlerFunct)(const char *progName, int argc, char *argv[]) टाइपडिफ़
bool(*
एक ऐसा फ़ंक्शन जिसे बचे हुए, बिना विकल्प वाले कमांड लाइन आर्ग्युमेंट को मैनेज करने के लिए कॉल किया जा सकता है.
OptionHandlerFunct)(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) टाइपडिफ़
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 फ़ैब्रिक आईडी को पार्स करें.
ParseHexString(const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen)
bool
हेक्स फ़ॉर्म में दी गई बाइट की स्ट्रिंग को पार्स करें.
ParseIPAddress(const char *str, IPAddress & output)
bool
टेक्स्ट फ़ॉर्म में किसी आईपी पते को पार्स करें.
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
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को पार्स करें और उसे 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 नोड आईडी को पार्स करें.
ParseSubnetId(const char *str, uint16_t & subnetId)
bool
स्ट्रिंग को हेक्साडेसिमल मानते हुए, किसी स्ट्रिंग को 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

कमांड लाइन के विकल्प के लिए, आर्ग्युमेंट की ज़रूरी शर्तें तय करता है.

टाइपडिफ़

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() को कोई कॉल नहीं किया जा रहा हो, तो यह वैल्यू शून्य हो जाएगी.

फ़ंक्शन

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) की एक सूची लेता है और उन्हें दी गई विकल्प की परिभाषाओं के सेट के मुताबिक पार्स करता है. फ़ंक्शन, लंबे (ऑप्ट) और शॉर्ट (-o) दोनों विकल्पों के साथ काम करता है. साथ ही, GNU getopt_long(3) फ़ंक्शन की तरह ही विकल्प सिंटैक्स को लागू करता है.

जानकारी
पैरामीटर
[in] progName
उस प्रोग्राम या कॉन्टेक्स्ट का नाम जिसमें आर्ग्युमेंट पार्स किए जा रहे हैं. इस स्ट्रिंग का इस्तेमाल, गड़बड़ी के मैसेज और चेतावनियों के पहले प्रीफ़िक्स के तौर पर किया जाएगा.
[in] argc
पार्स किए जाने वाले आर्ग्युमेंट की संख्या, प्लस 1.
[in] argv
पार्स की जाने वाली आर्ग्युमेंट स्ट्रिंग का कलेक्शन. अरे की लंबाई, rcc के लिए तय की गई वैल्यू से 1 ज़्यादा होनी चाहिए. साथ ही, rcv[orgc] को शून्य पर सेट किया जाना चाहिए. आर्ग्युमेंट को पार्स करने की प्रोसेस, second अरे एलिमेंट (आर्गव[1]) से शुरू होती है; एलिमेंट 0 को अनदेखा कर दिया जाता है.
[in] optSets
कानूनी विकल्पों के बारे में बताने वाले OptionSet स्ट्रक्चर के लिए पॉइंटर की सूची. दी गई सूची को शून्य से खत्म करना ज़रूरी है.
[in] nonOptArgHandler
किसी फ़ंक्शन का पॉइंटर जिसे विकल्प पार्सिंग के बाकी बचे हुए गैर-विकल्प तर्क के साथ पूरा हो जाने पर कॉल किया जाएगा . चाहे कोई भी आर्ग्युमेंट मौजूद हो, फ़ंक्शन को कॉल किया जाता है. अगर शून्य पास हो जाता है, तो ParseArgs() गड़बड़ी की सूचना देगा. ऐसा तब होगा, जब कोई ऐसा आर्ग्युमेंट मौजूद हो जिसमें विकल्प न हो.
[in] ignoreUnknown
अगर सही है, तो ऐसे विकल्पों को अनदेखा करें जिनकी पहचान नहीं की जा सकी है.
लौटाए जाने वाले प्रॉडक्ट
true अगर सभी विकल्प और बिना विकल्प वाले आर्ग्युमेंट पार्स किए गए हों; false अगर किसी विकल्प की पहचान नहीं हो पाई या कोई हैंडलर फ़ंक्शन पूरा नहीं हो सका (यानी कि गलत दिखाया गया).

विकल्प की परिभाषाएं, OptionSet स्ट्रक्चर (optSets) के कलेक्शन के रूप में ParseArgs() को पास की जाती हैं. हर OptionSet में विकल्प की परिभाषाओं का कलेक्शन और एक हैंडलर फ़ंक्शन होता है. ParseArgs() दिए गए क्रम में विकल्प के आर्ग्युमेंट को प्रोसेस करता है. साथ ही, पहचाने गए हर विकल्प के लिए, संबंधित हैंडलर फ़ंक्शन को कॉल करता है. सभी विकल्पों को पार्स करने के बाद, बाकी बचे आर्ग्युमेंट को प्रोसेस करने के लिए, एक अलग नॉन-विकल्प हैंडलर फ़ंक्शन (nonOptArgHandler) को एक बार कॉल किया जाता है.

विकल्प सेट

OptionSet में विकल्प परिभाषाओं का एक सेट होता है और साथ ही हैंडलर फ़ंक्शन के लिए पॉइंटर होता है जिसे संबद्ध विकल्पों में से कोई एक मिलने पर कॉल किया जाता है. विकल्प के सेट में हर विकल्प के सिंटैक्स और मकसद की जानकारी देने वाला सहायता टेक्स्ट भी होता है (नीचे 'विकल्प के तौर पर सहायता' पेज देखें). विकल्प के सेट को इस तरह से डिज़ाइन किया गया है कि मिलते-जुलते विकल्पों के फिर से इस्तेमाल किए जा सकने वाले कलेक्शन बनाए जा सकें. इससे एक जैसे विकल्पों (जैसे कि टेस्ट ऐप्लिकेशन) को स्वीकार करने वाले कई ऐप्लिकेशन को मैनेज करना आसान हो जाता है.

OptionSetsone को परिभाषित करने के लिए दो पैटर्न होते हैं: या तो OptionSet निर्देश का इंस्टेंस खुद शुरू करना, उदाहरण के लिए. स्टैटिक ग्लोबल या सब-क्लास OptionSetBase के तौर पर जोड़ें और कंस्ट्रक्टर दें. बाद वाली प्रॉपर्टी, सब-क्लास को विकल्प मैनेज करने का ऐक्सेस देने के लिए, पूरी तरह वर्चुअल HandleOption() फ़ंक्शन का इस्तेमाल करती है.

विकल्प सेट की सूचियों को 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 एलिमेंट के कलेक्शन के तौर पर व्यवस्थित होती हैं. यहां हर एलिमेंट में ये चीज़ें शामिल होती हैं: विकल्प का नाम, विकल्प की पहचान करने के लिए इस्तेमाल किया जाने वाला पूर्णांक आईडी, और यह विकल्प कि क्या विकल्प के लिए कोई तर्क मौजूद है/अनुमति है या नहीं. विकल्प अरे के खत्म होने का संकेत, शून्य नाम वाले फ़ील्ड से दिया जाता है. 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 }
};

विकल्प आईडी

विकल्प आईडी उस कोड के विकल्पों की पहचान करते हैं जो उन्हें हैंडल करता है (OptionHandler फ़ंक्शन). विकल्प आईडी OptionSet जिसमें वे दिखते हैं, उसके हिसाब से होते हैं और इसलिए अलग-अलग OptionSet में फिर से इस्तेमाल किए जा सकते हैं (हालांकि नीचे छोटा विकल्प देखें). सामान्य तौर पर, विकल्प आईडी को 1,000 पर संख्या से शुरू करना होता है, हालांकि कोई भी संख्या > सिर्फ़ 128 कोड का इस्तेमाल किया जा सकता है. उपनाम के विकल्प, अलग-अलग विकल्प नामों वाले एक ही विकल्प आईडी का इस्तेमाल करके बनाए जा सकते हैं.

छोटे विकल्प

getopt_long(3) के उलट, ParseArgs() छोटे विकल्प के वर्णों की सूची तय करने वाली अलग से स्ट्रिंग नहीं लेता. इसके बजाय, कोई भी विकल्प जिसका आईडी मान ग्राफ़िकल ASCII वर्णों की श्रेणी में आता है, उस वर्ण को संक्षिप्त विकल्प के रूप में उपयोग किए जाने की अनुमति देगा.

ParseArgs() के लिए यह ज़रूरी है कि सभी OptionSets में छोटे विकल्प वाले वर्ण यूनीक हों. इस वजह से, ऐसे विकल्प सेट के लिए छोटे विकल्पों का इस्तेमाल करने की सलाह नहीं दी जाती है जिन्हें प्रोग्राम में शेयर किया जाता है. ऐसा इसलिए है, क्योंकि इवेंट के बीच टकराव होने की संभावना काफ़ी ज़्यादा होती है. उपनाम वाले लंबे विकल्प नाम बनाने की अनुमति देने के लिए, छोटे विकल्प वाले वर्णों को किसी एक OptionSet में फिर से इस्तेमाल किया जा सकता है.

विकल्प सहायता

हर OptionSet में एक OptionHelp स्ट्रिंग होती है जो जुड़े हुए विकल्पों के मकसद और सिंटैक्स की जानकारी देती है. विकल्प के इस्तेमाल की जानकारी जनरेट करने के लिए, PrintOptionHelp() फ़ंक्शन इन स्ट्रिंग का इस्तेमाल करता है.

परंपरागत रूप से, विकल्प सहायता स्ट्रिंग में एक सिंटैक्स उदाहरण होता है, जिसके बाद विकल्प के बारे में टेक्स्ट के रूप में जानकारी दी जाती है. अगर विकल्प का छोटा वर्शन या उपनाम नाम है, तो उसे मुख्य लंबे नाम से पहले दिया जाता है. कंसिस्टेंसी के लिए, सिंटैक्स लाइन दो स्पेस के साथ इंडेंट की जाती हैं, जबकि ब्यौरे की लाइनों में सात स्पेस इंडेंट किए जाते हैं. एक खाली लाइन, हर विकल्प के ब्यौरे के साथ-साथ आखिरी विकल्प के बाद आती है.

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 का इस्तेमाल करता है. अगर एक से ज़्यादा OptionSets में एक ही HelpGroupName होता है, तो PrintOptionHelp() एक ही सेक्शन के टाइटल में, अलग-अलग OptionSets के लिए विकल्प सहायता को एक साथ प्रिंट करेगा.

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 स्ट्रक्चर के लिए पॉइंटर की सूची. दी गई सूची को शून्य से खत्म करना ज़रूरी है.
[in] nonOptArgHandler
किसी फ़ंक्शन का पॉइंटर जिसे विकल्प पार्सिंग के बाकी बचे हुए गैर-विकल्प तर्क के साथ पूरा हो जाने पर कॉल किया जाएगा . चाहे कोई भी आर्ग्युमेंट मौजूद हो, फ़ंक्शन को कॉल किया जाता है. अगर शून्य पास हो जाता है, तो ParseArgs() गड़बड़ी की सूचना देगा. ऐसा तब होगा, जब कोई ऐसा आर्ग्युमेंट मौजूद हो जिसमें विकल्प न हो.
[in] ignoreUnknown
अगर सही है, तो ऐसे विकल्पों को अनदेखा करें जिनकी पहचान नहीं की जा सकी है.
लौटाए जाने वाले प्रॉडक्ट
true, अगर सभी विकल्प और विकल्प न चुनने वाले आर्ग्युमेंट को पार्स किया गया हो या तय किया गया एनवायरमेंट वैरिएबल सेट न हो; 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 स्ट्रक्चर के लिए पॉइंटर की सूची. दी गई सूची को शून्य से खत्म करना ज़रूरी है.
[in] nonOptArgHandler
किसी फ़ंक्शन का पॉइंटर जिसे विकल्प पार्सिंग के बाकी बचे हुए गैर-विकल्प तर्क के साथ पूरा हो जाने पर कॉल किया जाएगा . चाहे कोई भी आर्ग्युमेंट मौजूद हो, फ़ंक्शन को कॉल किया जाता है. अगर शून्य पास हो जाता है, तो ParseArgs() गड़बड़ी की सूचना देगा. ऐसा तब होगा, जब कोई ऐसा आर्ग्युमेंट मौजूद हो जिसमें विकल्प न हो.
[in] ignoreUnknown
अगर सही है, तो ऐसे विकल्पों को अनदेखा करें जिनकी पहचान नहीं की जा सकी है.
लौटाए जाने वाले प्रॉडक्ट
true अगर सभी विकल्प और बिना विकल्प वाले आर्ग्युमेंट पार्स किए गए हों; false अगर किसी विकल्प की पहचान नहीं हो पाई, अगर कोई हैंडलर फ़ंक्शन पूरा नहीं हो सका (यानी कि गलत दिखाया गया) या कोई अंदरूनी गड़बड़ी हुई.

इनपुट स्ट्रिंग का सिंटैक्स, यूनिक्स शेल कमांड सिंटैक्स की तरह ही है, लेकिन इसमें आसान कोटिंग स्कीम इस्तेमाल की गई है. खास तौर पर:

  • आर्ग्युमेंट को खाली सफ़ेद जगह से अलग किया जाता है, बशर्ते खाली सफ़ेद जगह को कोट या एस्केप न किया गया हो.
  • एक बैकस्लैश वर्ण को छोड़ देता है, जिससे इसे एक सामान्य वर्ण माना जाता है. बैकस्लैश को हटा दिया जाता है.
  • सिंगल या डबल कोटेशन मार्क के शुरू और खत्म होने पर कोट किए गए सबस्ट्रिंग. किसी सबस्ट्रिंग में, सिर्फ़ विशेष वर्ण बैकस्लैश होते हैं. ये अगले वर्ण और उससे जुड़े आखिरी कोट को छोड़ देते हैं. आरंभ/समाप्ति उद्धरण के वर्ण हटा दिए जाते हैं.

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
खत्म की गई सी स्ट्रिंग का पॉइंटर, जो पार्स की जाने वाली वैल्यू को दिखाता है.
[out] output
बूल के लिए स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर स्टोर किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseFabricId

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

टेक्स्ट के रूप में Weave फ़ैब्रिक आईडी को पार्स करें.

ParseFabricId() फ़ंक्शन, 64-बिट फ़ैब्रिक आईडी को स्वीकार करता है, जो हेक्स फ़ॉर्मैट में दिया जाता है. इसकी शुरुआत '0x' के साथ या उसके बिना होती है.

जानकारी
पैरामीटर
[in] str
शून्य-टर्मिनेट की गई C स्ट्रिंग का पॉइंटर, जिसमें पार्स करने के लिए फ़ैब्रिक आईडी होता है.
[out] output
uint64_t lvalue का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सक्सेस होने पर स्टोर किया जाएगा.
[in] allowReserved
अगर सही है, तो रिज़र्व की गई रेंज में फ़ैब्रिक आईडी को पार्स करने की अनुमति दें.
लौटाए जाने वाले प्रॉडक्ट
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.

ParseHexString

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

हेक्स फ़ॉर्म में दी गई बाइट की स्ट्रिंग को पार्स करें.

ParseHexString() के लिए, इनपुट को हेक्स अंकों (अपर या लोअर केस) के पेयर के तौर पर होना चाहिए. विकल्प के तौर पर, हेक्स पेयर को इनमें से किसी भी वर्ण का इस्तेमाल करके अलग किया जा सकता है: कोलन, सेमीकोलन, कॉमा, पीरियड या डैश. इसके अलावा, इनपुट स्ट्रिंग में कहीं भी खाली सफ़ेद जगह वाले वर्णों को अनदेखा कर दिया जाता है.

जानकारी
पैरामीटर
[in] hexStr
पार्स करने के लिए स्ट्रिंग का पॉइंटर.
[in] strLen
पार्स करने के लिए, hexStr में वर्णों की संख्या.
[in] outBuf
बफ़र का पॉइंटर, जिसमें पार्स बाइट सेव की जाएंगी.
[in] outBufSize
बफ़र का साइज़, जिसे outBuf से दिखाया गया है.
[out] outDataLen
ऐसे पूर्णांक का रेफ़रंस जिसे पार्स किए गए बाइट की कुल संख्या मिलेगी. ऐसी स्थिति में जब outBuf दी गई संख्या में बाइट रखने के लिए काफ़ी नहीं है, तो outDataLen को UINT32_MAX पर सेट किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर इनपुट डेटा गलत है या outBuf बहुत छोटा है, तो गलत है.

ParseIPAddress

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

टेक्स्ट फ़ॉर्म में किसी आईपी पते को पार्स करें.

जानकारी
पैरामीटर
[in] str
ऐसी C स्ट्रिंग का पॉइंटर जिसमें पार्स किया जाने वाला पता मौजूद है.
[out] output
IPAddress ऑब्जेक्ट का एक संदर्भ जिसमें पार्स मान को सही होने पर स्टोर किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 64-बिट बिना साइन वाले पूर्णांक में बदलने और पार्स करने की कोशिश करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 64-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
[in] base
वह बेस जिसके हिसाब से स्ट्रिंग की व्याख्या की जानी चाहिए और उसे पार्स किया जाना चाहिए. अगर 0 या 16 है, तो स्ट्रिंग हेक्साडेसिमल हो सकती है और इससे पहले "0x" लगा हो सकता है. अगर ऐसा नहीं है, तो 0 को 10 के तौर पर दिखाया जाता है. ऐसा तब तक होता है, जब तक कि शुरुआत में 0 न मिल जाए और उसमें 8 शामिल न हो.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 32-बिट साइन नहीं किए गए पूर्णांक में बदलने की कोशिश करें और पार्स करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 32-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
[in] base
वह बेस जिसके हिसाब से स्ट्रिंग की व्याख्या की जानी चाहिए और उसे पार्स किया जाना चाहिए. अगर 0 या 16 है, तो स्ट्रिंग हेक्साडेसिमल हो सकती है और इससे पहले "0x" लगा हो सकता है. अगर ऐसा नहीं है, तो 0 को 10 के तौर पर दिखाया जाता है. ऐसा तब तक होता है, जब तक कि शुरुआत में 0 न मिल जाए और उसमें 8 शामिल न हो.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 32-बिट साइन किए गए पूर्णांक में बदलने की कोशिश करें और पार्स करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
हस्ताक्षर किए गए 32-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
[in] base
वह बेस जिसके हिसाब से स्ट्रिंग की व्याख्या की जानी चाहिए और उसे पार्स किया जाना चाहिए. अगर 0 या 16 है, तो स्ट्रिंग हेक्साडेसिमल हो सकती है और इससे पहले "0x" लगा हो सकता है. अगर ऐसा नहीं है, तो 0 को 10 के तौर पर दिखाया जाता है. ऐसा तब तक होता है, जब तक कि शुरुआत में 0 न मिल जाए और उसमें 8 शामिल न हो.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 64-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 64-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 32-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 32-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को पार्स करें और उसे 32-बिट वाले पूर्णांक में बदलने की कोशिश करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
हस्ताक्षर किए गए 32-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 16-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 16-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को पार्स करें और उसे 16-बिट वाले पूर्णांक में बदलने की कोशिश करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
हस्ताक्षर किए गए 16-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseInt

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

बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को 8-बिट वाले बिना साइन वाले पूर्णांक में बदलने की कोशिश करें.

जानकारी
पैरामीटर
[in] str
नल-टर्मिनेटेड C स्ट्रिंग का पॉइंटर, जो पार्स करने के लिए पूर्णांक को दिखाता है.
[out] output
बिना साइन वाले 8-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सही तरीके से सेव होने पर सेव किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

ParseNodeId

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

टेक्स्ट फ़ॉर्म में Weave नोड आईडी को पार्स करें.

ParseNodeId() फ़ंक्शन, हेक्स फ़ॉर्मैट में दिए गए 64-बिट नोड आईडी ('0x' के साथ या उसके बिना) या 'any' शब्द को स्वीकार करता है या 'सभी' जिसे कोई भी नोड आईडी (0xFFFFFFFFFFFFFF) के तौर पर समझा जाता है.

जानकारी
पैरामीटर
[in] str
शून्य-टर्मिनेट की गई C स्ट्रिंग का पॉइंटर, जिसमें पार्स करने के लिए नोड आईडी है.
[out] output
uint64_t lvalue का रेफ़रंस, जिसमें पार्स की गई वैल्यू को सक्सेस होने पर स्टोर किया जाएगा.
लौटाए जाने वाले प्रॉडक्ट
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.

ParseSubnetId

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

स्ट्रिंग को हेक्साडेसिमल मानते हुए, किसी स्ट्रिंग को 16-बिट बिना साइन किए हुए सबनेट आईडी में बदलें और उसे पार्स करने की कोशिश करें.

जानकारी
पैरामीटर
[in] str
पार्स करने के लिए, सबनेट आईडी को हेक्साडेसिमल के तौर पर फ़ॉर्मैट किए गए सबनेट आईडी को दिखाने वाले शून्य-बंद C स्ट्रिंग का पॉइंटर.
[in,out] subnetId
बिना साइन वाले 16-बिट वाले पूर्णांक के स्टोरेज का रेफ़रंस, जिसमें पार्स किया गया सबनेट आईडी की वैल्यू सही होने पर सेव की जाएगी.
लौटाए जाने वाले प्रॉडक्ट
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.

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
)