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
|
OptionSet **
फ़िलहाल चालू 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:: |
जानकारी से जुड़े विकल्पों (सहायता, वर्शन) को मैनेज करने के लिए, सामान्य OptionSet. |
nl:: |
OptionSet जहां हैंडलर एक वर्चुअल फ़ंक्शन होता है. |
स्ट्रक्चर |
|
---|---|
nl:: |
कमांड लाइन के विकल्प के बारे में बताता है. |
nl:: |
लॉजिकल तरीके से जुड़े और फिर से इस्तेमाल किए जा सकने वाले कमांड लाइन विकल्पों के ग्रुप के बारे में बताता है. |
इन्यूमरेशन
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, ... )
आर्ग्युमेंट पार्स करने से जुड़ा गड़बड़ी का मैसेज प्रिंट करें.
डिफ़ॉल्ट फ़ंक्शन का इस्तेमाल, आर्ग्युमेंट को पार्स करने की वजह से दिखने वाली गड़बड़ी के मैसेज को प्रिंट करने के लिए किया जाता है.
जानकारी | |||
---|---|---|---|
पैरामीटर |
|
ऐप्लिकेशन को इस फ़ंक्शन को सीधे कॉल करने के बजाय, 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) फ़ंक्शन की तरह ही विकल्प सिंटैक्स को लागू करता है.
जानकारी | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
लौटाए जाने वाले प्रॉडक्ट |
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()
को पास करता है. अगर एनवायरमेंट वैरिएबल सेट नहीं है, तो फ़ंक्शन कुछ नहीं करता.
जानकारी | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||
लौटाए जाने वाले प्रॉडक्ट |
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() फ़ंक्शन का इस्तेमाल करके, आर्ग्युमेंट को पार्स करती है.
जानकारी | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||
लौटाए जाने वाले प्रॉडक्ट |
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".
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseFabricId
bool ParseFabricId( const char *str, uint64_t & fabricId, bool allowReserved )
टेक्स्ट के रूप में Weave फ़ैब्रिक आईडी को पार्स करें.
ParseFabricId() फ़ंक्शन, 64-बिट फ़ैब्रिक आईडी को स्वीकार करता है, जो हेक्स फ़ॉर्मैट में दिया जाता है. इसकी शुरुआत '0x' के साथ या उसके बिना होती है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.
|
ParseHexString
bool ParseHexString( const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen )
हेक्स फ़ॉर्म में दी गई बाइट की स्ट्रिंग को पार्स करें.
ParseHexString() के लिए, इनपुट को हेक्स अंकों (अपर या लोअर केस) के पेयर के तौर पर होना चाहिए. विकल्प के तौर पर, हेक्स पेयर को इनमें से किसी भी वर्ण का इस्तेमाल करके अलग किया जा सकता है: कोलन, सेमीकोलन, कॉमा, पीरियड या डैश. इसके अलावा, इनपुट स्ट्रिंग में कहीं भी खाली सफ़ेद जगह वाले वर्णों को अनदेखा कर दिया जाता है.
जानकारी | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||
लौटाए जाने वाले प्रॉडक्ट |
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर इनपुट डेटा गलत है या
outBuf बहुत छोटा है, तो गलत है. |
ParseIPAddress
bool ParseIPAddress( const char *str, IPAddress & output )
टेक्स्ट फ़ॉर्म में किसी आईपी पते को पार्स करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.
|
ParseInt
bool ParseInt( const char *str, uint64_t & output, int base )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 64-बिट बिना साइन वाले पूर्णांक में बदलने और पार्स करने की कोशिश करें.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, uint32_t & output, int base )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 32-बिट साइन नहीं किए गए पूर्णांक में बदलने की कोशिश करें और पार्स करें.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, int32_t & output, int base )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, किसी स्ट्रिंग को 32-बिट साइन किए गए पूर्णांक में बदलने की कोशिश करें और पार्स करें.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, uint64_t & output )
दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 64-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, uint32_t & output )
दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 32-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, int32_t & output )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को पार्स करें और उसे 32-बिट वाले पूर्णांक में बदलने की कोशिश करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, uint16_t & output )
दशमलव मान के रूप में बताई गई स्ट्रिंग को पार्स करें और उसे बिना साइन वाले 16-बिट वाले पूर्णांक में बदलने की कोशिश करें. साथ ही, बेस पैरामीटर के आधार पर सही परिभाषा लागू करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, int16_t & output )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को पार्स करें और उसे 16-बिट वाले पूर्णांक में बदलने की कोशिश करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseInt
bool ParseInt( const char *str, uint8_t & output )
बेस पैरामीटर के आधार पर सही व्याख्या लागू करते हुए, दशमलव वैल्यू के तौर पर बताई गई स्ट्रिंग को 8-बिट वाले बिना साइन वाले पूर्णांक में बदलने की कोशिश करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
ParseNodeId
bool ParseNodeId( const char *str, uint64_t & nodeId )
टेक्स्ट फ़ॉर्म में Weave नोड आईडी को पार्स करें.
ParseNodeId() फ़ंक्शन, हेक्स फ़ॉर्मैट में दिए गए 64-बिट नोड आईडी ('0x' के साथ या उसके बिना) या 'any' शब्द को स्वीकार करता है या 'सभी' जिसे कोई भी नोड आईडी (0xFFFFFFFFFFFFFF) के तौर पर समझा जाता है.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सही है, अगर वैल्यू को पार्स कर लिया गया था; अगर वैल्यू नहीं है, तो गलत है.
|
ParseSubnetId
bool ParseSubnetId( const char *str, uint16_t & subnetId )
स्ट्रिंग को हेक्साडेसिमल मानते हुए, किसी स्ट्रिंग को 16-बिट बिना साइन किए हुए सबनेट आईडी में बदलें और उसे पार्स करने की कोशिश करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए जाने वाले प्रॉडक्ट |
सफलता पर सच होता है; नहीं तो, फ़ेल होने पर गलत.
|
PrintOptionHelp
void PrintOptionHelp( OptionSet *optSets[], FILE *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 )