nl:: ArgParser
সারাংশ
গণনা | |
---|---|
OptionArgumentType | enum একটি কমান্ড লাইন বিকল্পের জন্য আর্গুমেন্ট প্রয়োজনীয়তা সংজ্ঞায়িত করে। |
Typedefs | |
---|---|
NonOptionArgHandlerFunct )(const char *progName, int argc, char *argv[]) | typedefbool(* একটি ফাংশন যা যেকোন অবশিষ্ট, অ-অপশন কমান্ড লাইন আর্গুমেন্ট পরিচালনা করতে কল করা যেতে পারে। |
OptionHandlerFunct )(const char *progName, OptionSet *optSet, int id, const char *name, const char *arg) | typedefbool(* একটি ফাংশন যা কমান্ড লাইন বিকল্পগুলির একটি সেট পরিচালনা করতে কল করা যেতে পারে। |
ভেরিয়েবল | |
---|---|
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 টেক্সট আকারে একটি ওয়েভ ফ্যাব্রিক আইডি পার্স করুন। |
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 পাঠ্য আকারে একটি ওয়েভ নোড আইডি পার্স করুন। |
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 | তথ্যগত বিকল্পগুলি পরিচালনা করার জন্য সাধারণ বিকল্প সেট (সহায়তা, সংস্করণ)। |
nl:: ArgParser:: OptionSetBase | একটি OptionSet যেখানে হ্যান্ডলার একটি ভার্চুয়াল ফাংশন। |
কাঠামো | |
---|---|
nl:: ArgParser:: OptionDef | একটি কমান্ড লাইন বিকল্প সংজ্ঞায়িত করে। |
nl:: ArgParser:: OptionSet | যৌক্তিকভাবে-সম্পর্কিত এবং পুনরায় ব্যবহারযোগ্য কমান্ড লাইন বিকল্পগুলির একটি গ্রুপ সংজ্ঞায়িত করে। |
গণনা
অপশন আর্গুমেন্ট টাইপ
OptionArgumentType
একটি কমান্ড লাইন বিকল্পের জন্য আর্গুমেন্ট প্রয়োজনীয়তা সংজ্ঞায়িত করে।
Typedefs
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() এ কোন কল চলছে না তখন এই মানটি 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 )
ডিফল্টপ্রিন্টআর্গ ত্রুটি
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 )
মেক লং অপশন
struct option * MakeLongOptions( OptionSet **optSets )
মেক শর্ট অপশন
char * MakeShortOptions( OptionSet **optSets )
MakeUniqueHelpGroupNamesList
const char ** MakeUniqueHelpGroupNamesList( OptionSet *optSets[] )
পার্সআর্গস
bool ParseArgs( const char *progName, int argc, char *argv[], OptionSet *optSets[], NonOptionArgHandlerFunct nonOptArgHandler, bool ignoreUnknown )
কমান্ড লাইন-স্টাইল আর্গুমেন্টের একটি সেট পার্স করুন, প্রতিটি অপশন এবং অ-অপশন আর্গুমেন্ট প্রক্রিয়া করার জন্য হ্যান্ডলিং ফাংশনকে কল করুন।
ParseArgs() আর্গুমেন্টের একটি তালিকা নেয় ( argv
) এবং সরবরাহকৃত বিকল্প সংজ্ঞাগুলির একটি সেট অনুসারে তাদের পার্স করে। ফাংশনটি দীর্ঘ (অপ্ট) এবং সংক্ষিপ্ত (-ও) উভয় বিকল্পকে সমর্থন করে এবং GNU getopt_long(3) ফাংশনের মতো একই বিকল্প সিনট্যাক্স প্রয়োগ করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্নস | true যদি সব অপশন এবং অপশন আর্গুমেন্ট সফলভাবে পার্স করা হয়; false যদি একটি বিকল্প অস্বীকৃত হয় বা যদি হ্যান্ডলার ফাংশনগুলির একটি ব্যর্থ হয় (অর্থাৎ মিথ্যা ফেরত দেওয়া হয়)। |
OptionSet স্ট্রাকচার ( optSets
) এর একটি অ্যারে হিসাবে বিকল্প সংজ্ঞা ParseArgs()-এ পাস করা হয়। প্রতিটি অপশনসেটে বিকল্প সংজ্ঞা এবং একটি হ্যান্ডলার ফাংশনের একটি অ্যারে রয়েছে। ParseArgs() প্রদত্ত ক্রমে বিকল্প আর্গুমেন্ট প্রক্রিয়া করে, প্রতিটি স্বীকৃত বিকল্পের জন্য সংশ্লিষ্ট হ্যান্ডলার ফাংশনকে কল করে। সমস্ত বিকল্প পার্স করা হয়ে গেলে, একটি পৃথক নন-অপশন হ্যান্ডলার ফাংশন ( nonOptArgHandler
) যেকোন অবশিষ্ট আর্গুমেন্ট প্রক্রিয়া করার জন্য একবার কল করা হয়।
বিকল্প সেট
একটি OptionSet-এ একটি হ্যান্ডলার ফাংশনের একটি পয়েন্টার সহ বিকল্প সংজ্ঞাগুলির একটি সেট থাকে যা সংশ্লিষ্ট বিকল্পগুলির একটির সম্মুখীন হলে কল করা হবে। বিকল্প সেটগুলিতে প্রতিটি বিকল্পের সিনট্যাক্স এবং উদ্দেশ্য বর্ণনা করে সহায়তা পাঠ্যও থাকে (নীচে বিকল্প সহায়তা দেখুন)। বিকল্প সেটগুলি সম্পর্কিত বিকল্পগুলির পুনরায় ব্যবহারযোগ্য সংগ্রহ তৈরি করার অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছে। এটি একই ধরনের বিকল্প গ্রহণ করে এমন একাধিক অ্যাপ্লিকেশন বজায় রাখার জন্য প্রয়োজনীয় প্রচেষ্টাকে সহজ করে তোলে (যেমন পরীক্ষার অ্যাপ্লিকেশন)।
OptionSetsone সংজ্ঞায়িত করার জন্য দুটি প্যাটার্ন আছে হয় OptionSet স্ট্রাকচারের একটি ইনস্ট্যান্স শুরু করতে পারে, যেমন একটি স্ট্যাটিক গ্লোবাল হিসাবে, অথবা সাবক্লাস OptionSetBase এবং একটি কনস্ট্রাক্টর প্রদান করতে পারে। পরেরটি একটি বিশুদ্ধ ভার্চুয়াল HandleOption()
ফাংশন ব্যবহার করে অপশন হ্যান্ডলিং সাবক্লাসে অর্পণ করে।
OptionSets তালিকাগুলি ParseArgs() ফাংশনে একটি NULL-টার্মিনেটেড অ্যারে পয়েন্টার হিসাবে পাঠানো হয়। যেমন:
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 উপাদানগুলির একটি অ্যারে হিসাবে সংগঠিত হয়, যেখানে প্রতিটি উপাদান থাকে: বিকল্পের নাম, একটি পূর্ণসংখ্যা আইডি যা বিকল্পটি সনাক্ত করতে ব্যবহৃত হয় এবং বিকল্পটি একটি আর্গুমেন্ট আশা করে/অনুমতি দেয় কিনা। বিকল্প অ্যারের শেষ একটি NULL নাম ক্ষেত্র দ্বারা সংকেত হয়। যেমন:
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 } };
বিকল্প আইডি
অপশন আইডি কোডের বিকল্পগুলিকে চিহ্নিত করে যা সেগুলি পরিচালনা করে (অপশনহ্যান্ডলার ফাংশন)। অপশন আইডিগুলি সেই অপশনসেটের সাথে আপেক্ষিক যেটিতে সেগুলি উপস্থিত হয় এবং এইভাবে বিভিন্ন অপশনসেট জুড়ে পুনরায় ব্যবহার করা যেতে পারে (তবে নিচে ছোট বিকল্পগুলি দেখুন)৷ সাধারণ নিয়ম হল 1000-এ নম্বর দেওয়া বিকল্প আইডি শুরু করা, তবে যেকোনো সংখ্যা > 128 ব্যবহার করা যেতে পারে। বিভিন্ন অপশন নামের একই অপশন আইডি ব্যবহার করে উপনাম অপশন তৈরি করা যায়।
সংক্ষিপ্ত বিকল্প
getopt_long(3) এর বিপরীতে, ParseArgs() সংক্ষিপ্ত বিকল্প অক্ষরের তালিকা নির্দিষ্ট করে একটি পৃথক স্ট্রিং নেয় না। বরং, যেকোনো বিকল্প যার আইডি মান গ্রাফিকাল ASCII অক্ষরের পরিসরে পড়ে সেই অক্ষরটিকে একটি সংক্ষিপ্ত বিকল্প হিসাবে ব্যবহার করার অনুমতি দেবে।
ParseArgs() এর জন্য প্রয়োজন যে সংক্ষিপ্ত বিকল্প অক্ষরগুলি সমস্ত OptionSets জুড়ে অনন্য। এই কারণে, সংঘর্ষের উল্লেখযোগ্য সুযোগের কারণে প্রোগ্রাম জুড়ে শেয়ার করা যেকোন অপশনসেটের জন্য সংক্ষিপ্ত বিকল্পের ব্যবহার নিরুৎসাহিত করা হয়। সংক্ষিপ্ত বিকল্প অক্ষর একটি একক OptionSet মধ্যে পুনঃব্যবহার করা যেতে পারে উপনাম দীর্ঘ বিকল্প নাম তৈরির জন্য অনুমতি দিতে।
বিকল্প সাহায্য
প্রতিটি OptionSet-এ একটি OptionHelp
স্ট্রিং থাকে যা সংশ্লিষ্ট বিকল্পগুলির উদ্দেশ্য এবং সিনট্যাক্স বর্ণনা করে। এই স্ট্রিংগুলি PrintOptionHelp()
ফাংশন দ্বারা বিকল্প ব্যবহারের তথ্য তৈরি করতে ব্যবহার করা হয়।
নিয়ম অনুসারে, বিকল্প সাহায্যের স্ট্রিংগুলি বিকল্পের পাঠ্য বিবরণ দ্বারা অনুসরণ করে একটি সিনট্যাক্স উদাহরণ নিয়ে গঠিত। যদি বিকল্পটির একটি সংক্ষিপ্ত সংস্করণ বা একটি উপনাম থাকে তবে এটি প্রাথমিক দীর্ঘ নামের আগে দেওয়া হয়। সামঞ্জস্যের জন্য, সিনট্যাক্স লাইনগুলি 2টি স্পেস দিয়ে ইন্ডেন্ট করা হয়, যখন বর্ণনা লাইনগুলি 7টি স্পেস দিয়ে ইন্ডেন্ট করা হয়। একটি একক ফাঁকা লাইন প্রতিটি বিকল্পের বিবরণ অনুসরণ করে, শেষটি সহ।
যেমন:
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 ব্যবহার করে। যদি একাধিক OptionSets-এর একই HelpGroupName থাকে, PrintOptionHelp() একটি সাধারণ বিভাগের শিরোনামের অধীনে একসাথে বিভিন্ন OptionSets-এর জন্য বিকল্প সাহায্য প্রিন্ট করবে।
পার্সআর্গস
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 )
একটি নামযুক্ত পরিবেশ পরিবর্তনশীল থেকে আর্গুমেন্টের একটি সেট পার্স করুন।
ParseArgsFromEnvVar() একটি নামকৃত পরিবেশ পরিবর্তনশীল পড়ে এবং পার্সিংয়ের জন্য ParseArgsFromString()
এর কাছে মানটি পাস করে। এনভায়রনমেন্ট ভেরিয়েবল সেট করা না থাকলে, ফাংশন কিছুই করে না।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||
রিটার্নস | true যদি সমস্ত বিকল্প এবং অ-বিকল্প আর্গুমেন্ট সফলভাবে পার্স করা হয়, অথবা যদি নির্দিষ্ট পরিবেশ পরিবর্তনশীল সেট না করা হয়; false যদি একটি বিকল্প অস্বীকৃত হয়, যদি একটি হ্যান্ডলার ফাংশন ব্যর্থ হয় (অর্থাৎ মিথ্যা প্রত্যাবর্তন) বা যদি একটি অভ্যন্তরীণ ত্রুটি ঘটেছে। |
পার্সআর্গসফ্রমএনভিভার
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 )
প্রদত্ত স্ট্রিং থেকে আর্গুমেন্টের একটি সেট পার্স করুন।
ParseArgsFromString() একটি প্রদত্ত স্ট্রিং ( argStr
) কে আর্গুমেন্টের একটি সেটে বিভক্ত করে এবং ParseArgs() ফাংশন ব্যবহার করে আর্গুমেন্টগুলি পার্স করে।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||
রিটার্নস | true যদি সব অপশন এবং অপশন আর্গুমেন্ট সফলভাবে পার্স করা হয়; false যদি একটি বিকল্প অস্বীকৃত হয়, যদি একটি হ্যান্ডলার ফাংশন ব্যর্থ হয় (অর্থাৎ মিথ্যা প্রত্যাবর্তন) বা যদি একটি অভ্যন্তরীণ ত্রুটি ঘটেছে। |
ইনপুট স্ট্রিংগুলির সিনট্যাক্স ইউনিক্স শেল কমান্ড সিনট্যাক্সের অনুরূপ, তবে একটি সরলীকৃত উদ্ধৃতি স্কিম সহ। বিশেষভাবে:
- আর্গুমেন্ট হোয়াইটস্পেস দ্বারা সীমাবদ্ধ করা হয়, যদি না হোয়াইটস্পেস উদ্ধৃত হয় বা এস্কেপ করা হয়।
- একটি ব্যাকস্ল্যাশ নিম্নলিখিত অক্ষর থেকে পালিয়ে যায়, যার ফলে এটি একটি সাধারণ চরিত্র হিসাবে বিবেচিত হয়। ব্যাকস্ল্যাশ নিজেই ছিনতাই করা হয়।
- একক বা ডবল উদ্ধৃতি শুরু/শেষ উদ্ধৃত সাবস্ট্রিং। একটি সাবস্ট্রিং-এর মধ্যে, শুধুমাত্র বিশেষ অক্ষরগুলি হল ব্যাকস্ল্যাশ, যা পরবর্তী অক্ষর থেকে পালিয়ে যায় এবং সংশ্লিষ্ট শেষ উদ্ধৃতি। শুরু/শেষ উদ্ধৃতি অক্ষর ছিনতাই করা হয়েছে।
যেমন:
--listen --count 10 --sw-version '1.0 (DEVELOPMENT)' "--hostname=nest.com"
পার্সআর্গসফ্রমস্ট্রিং
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 )
একটি বুলিয়ান মান হিসাবে একটি স্ট্রিং পার্স করুন।
এই ফাংশনটি নিম্নলিখিত ইনপুট মানগুলি গ্রহণ করে (কেস-সংবেদনশীল): "সত্য", "হ্যাঁ", "টি", "y", "1", "ফলস", "না", "f", "n", " 0"
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সফ্যাব্রিকআইডি
bool ParseFabricId( const char *str, uint64_t & fabricId, bool allowReserved )
টেক্সট আকারে একটি ওয়েভ ফ্যাব্রিক আইডি পার্স করুন।
ParseFabricId() ফাংশন হেক্স ফরম্যাটে দেওয়া একটি 64-বিট ফ্যাব্রিক আইডি গ্রহণ করে, একটি লিডিং '0x' সহ বা ছাড়াই।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে। |
পার্সহেক্সস্ট্রিং
bool ParseHexString( const char *hexStr, uint32_t strLen, uint8_t *outBuf, uint32_t outBufSize, uint32_t & outDataLen )
হেক্স আকারে দেওয়া বাইটের একটি স্ট্রিং পার্স করুন।
ParseHexString() আশা করে ইনপুটটি জোড়া হেক্স ডিজিটের আকারে (উপরের বা ছোট হাতের)। হেক্স জোড়া ঐচ্ছিকভাবে নিচের যেকোনো অক্ষর দ্বারা আলাদা করা যেতে পারে: কোলন, সেমিকোলন, কমা, পিরিয়ড বা ড্যাশ। অতিরিক্তভাবে, ইনপুট স্ট্রিং-এর যে কোনো জায়গায় হোয়াইটস্পেস অক্ষর উপেক্ষা করা হয়।
বিস্তারিত | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||
রিটার্নস | মান সফলভাবে পার্স করা হলে true; ইনপুট ডেটা ত্রুটিপূর্ণ হলে মিথ্যা, বা outBuf খুব ছোট হলে। |
আইপিএ ঠিকানা পার্স করুন
bool ParseIPAddress( const char *str, IPAddress & output )
পাঠ্য আকারে একটি আইপি ঠিকানা পার্স করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে। |
পার্সইন্ট
bool ParseInt( const char *str, uint64_t & output, int base )
পার্স করুন এবং একটি স্ট্রিংকে একটি 64-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে রূপান্তর করার চেষ্টা করুন, বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করুন।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, uint32_t & output, int base )
পার্স করুন এবং একটি স্ট্রিংকে একটি 32-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে রূপান্তর করার চেষ্টা করুন, বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করুন।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, int32_t & output, int base )
পার্স করুন এবং একটি স্ট্রিংকে একটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যাতে রূপান্তর করার চেষ্টা করুন, বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করুন।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, uint64_t & output )
বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 64-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে পার্স করুন এবং রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, uint32_t & output )
বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে 32-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে পার্স করুন এবং রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, int32_t & output )
পার্স করুন এবং বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, uint16_t & output )
পার্স করুন এবং বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে একটি 16-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, int16_t & output )
বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে 16-বিট স্বাক্ষরিত পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে পার্স করুন এবং রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্সইন্ট
bool ParseInt( const char *str, uint8_t & output )
বেস প্যারামিটারের উপর ভিত্তি করে উপযুক্ত ব্যাখ্যা প্রয়োগ করে 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যাতে দশমিক মান হিসাবে ব্যাখ্যা করা একটি স্ট্রিংকে পার্স করুন এবং রূপান্তর করার চেষ্টা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
পার্স নোডআইডি
bool ParseNodeId( const char *str, uint64_t & nodeId )
পাঠ্য আকারে একটি ওয়েভ নোড আইডি পার্স করুন।
ParseNodeId() ফাংশনটি হেক্স ফরম্যাটে প্রদত্ত একটি 64-বিট নোড আইডি গ্রহণ করে (একটি অগ্রণী '0x' সহ বা ছাড়া), অথবা 'যেকোনো' বা 'সমস্ত' শব্দ যা যে কোনো নোড আইডি (0xFFFFFFFFFFFFFFFFFFFFF) অর্থ হিসাবে ব্যাখ্যা করা হয়। .
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | মান সফলভাবে পার্স করা হলে true; মিথ্যা না হলে। |
সাবনেটআইডি পার্স করুন
bool ParseSubnetId( const char *str, uint16_t & subnetId )
পার্স করুন এবং একটি স্ট্রিংকে 16-বিট আনসাইনড সাবনেট আইডিতে রূপান্তর করার চেষ্টা করুন, স্ট্রিংটিকে হেক্সাডেসিমেল হিসাবে ব্যাখ্যা করুন।
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
| ||||
রিটার্নস | সাফল্যের উপর সত্য; অন্যথায়, ব্যর্থতার উপর মিথ্যা। |
প্রিন্ট অপশন হেল্প
void PrintOptionHelp( OptionSet *optSets[], FILE *s )
একটি স্ট্রীমের বিকল্পগুলির একটি নির্দিষ্ট তালিকার জন্য সহায়তা পাঠ্যটি মুদ্রণ করুন৷
বিস্তারিত | |||||
---|---|---|---|---|---|
পরামিতি |
|
PutStringWithBlankLine
void PutStringWithBlankLine( FILE *s, const char *str )
PutStringWithNewLine
void PutStringWithNewLine( FILE *s, const char *str )
স্প্লিটআর্গস
int32_t SplitArgs( char *argStr, char **& argList, char *initialArg )