//-------------------------------------------------------------------------------------------------- static void SetCommandHandler ( const char* argPtr ///< [IN] Command-line argument. ) { if (strcmp(argPtr, "ls") == 0) { CommandHandler = ListEntries; le_arg_AddPositionalCallback(SetPath); le_arg_SetFlagVar(&ListSizeFlag, "s", NULL); le_arg_AllowLessPositionalArgsThanCallbacks(); } else if (strcmp(argPtr, "read") == 0) { CommandHandler = PrintEntry; le_arg_AddPositionalCallback(SetPath); } else if (strcmp(argPtr, "write") == 0) { CommandHandler = WriteEntry; le_arg_AddPositionalCallback(SetInputFile); le_arg_AddPositionalCallback(SetPath); } else if (strcmp(argPtr, "rm") == 0) { CommandHandler = DeletePath; le_arg_AddPositionalCallback(SetPath); } else if (strcmp(argPtr, "size") == 0) { CommandHandler = PrintSize; le_arg_AddPositionalCallback(SetPath); le_arg_AllowLessPositionalArgsThanCallbacks(); } else if (strcmp(argPtr, "total") == 0) { CommandHandler = PrintTotalSizes; } else if (strcmp(argPtr, "readmeta") == 0) { CommandHandler = ReadMeta; } else { fprintf(stderr, "Unknown command.\n"); exit(EXIT_FAILURE); } }
//-------------------------------------------------------------------------------------------------- static void HandleAppName ( const char* appName ) { AppName = appName; // Now that we have received the only mandatory argument, we can allow less positional // arguments than callbacks. le_arg_AllowLessPositionalArgsThanCallbacks(); }
//-------------------------------------------------------------------------------------------------- static void TraceKeywordArgHandler ( const char* keyword ) { CommandParamPtr = keyword; // Wait for an optional log session identifier next. le_arg_AddPositionalCallback(SessionIdArgHandler); le_arg_AllowLessPositionalArgsThanCallbacks(); }
//-------------------------------------------------------------------------------------------------- static void NodeValueArgHandler ( const char* nodeValue ) //-------------------------------------------------------------------------------------------------- { NodeValue = nodeValue; // Could optionally have a node type argument after the node value. le_arg_AddPositionalCallback(DataTypeArgHandler); le_arg_AllowLessPositionalArgsThanCallbacks(); }
//-------------------------------------------------------------------------------------------------- static void LogLevelArgHandler ( const char* logLevel ) { // Check that string is one of the level strings. le_log_Level_t level = ParseSeverityLevel(logLevel); if (level == (le_log_Level_t)(-1)) { ExitWithErrorMsg("Invalid log level."); } const char* levelStr = log_SeverityLevelToStr(level); LE_ASSERT(levelStr != NULL); CommandParamPtr = levelStr; // Wait for an optional log session identifier next. le_arg_AddPositionalCallback(SessionIdArgHandler); le_arg_AllowLessPositionalArgsThanCallbacks(); }