bool CommandMgr::HandleCommand(const std::string& command, char* args[]) { CommandHandler* const handler = GetCommandHandler(command); if (!handler) return false; if (!(this->*handler->Handler)(args)) { printf("Invalid parameter(s)\n"); printf("%s\n", handler->Help); } return true; }
/* string query (in string aCommand, in string aStatus); */ NS_IMETHODIMP nsCommandHandler::Query(const char *aCommand, const char *aStatus, char **aResult) { NS_ENSURE_ARG_POINTER(aCommand); NS_ENSURE_ARG_POINTER(aResult); nsCOMPtr<nsICommandHandler> commandHandler; GetCommandHandler(getter_AddRefs(commandHandler)); // Call the client's command handler to deal with this command if (commandHandler) { *aResult = nullptr; return commandHandler->Query(aCommand, aStatus, aResult); } // Return an empty string const char szEmpty[] = ""; *aResult = (char *) nsMemory::Clone(szEmpty, sizeof(szEmpty)); return NS_OK; }