void Console::registerAlias(const std::string &name, const std::string &cmd) { AliasRecord *a = findAlias(name); if (a == nullptr) { verifyRegistration(CON_Lang("Alias registration"), name, false); AliasRecord newAlias(name, cmd); // Zaradi novy alias tak, aby byly setridene podle abecedy size_t position = 0; for (const AliasRecord &alias : aliases) { if (alias.getName().compare(name) > 0) { break; } ++position; } aliases.insert(aliases.begin() + position, newAlias); } else { a->setCommand(cmd); } if (hasFlag(RegInfoFlag)) { print(CON_Format(CON_Lang("Alias registration: \"{0}\" as \"{1}\" has been successful\n")) << name << cmd); } }
void handleUpdate(char *allTokens[], char response[MAX_RESPONSE_SIZE]){ //Executes an update and stores a response if(strncmp(allTokens[0], "REGISTER", strlen(allTokens[0])) == 0){ validateArguments(allTokens, 3); int val = verifyRegistration(allTokens[1], allTokens[2]); if(snprintf(response, MAX_RESPONSE_SIZE, "%i\n", val) < 0) { perror("Snprintf failed."); exit(SNPRINTF_FAILED); } } else if(strncmp(allTokens[0], "ADD_TWEET", strlen(allTokens[0])) == 0){ validateArguments(allTokens, 4); //puts(allTokens[2]); int val = addTweet(allTokens[1], allTokens[2], allTokens[3]); if(snprintf(response, MAX_RESPONSE_SIZE, "%i\n", val) < 0) { perror("Snprintf failed."); exit(SNPRINTF_FAILED); } } else if(strncmp(allTokens[0], "ADD_FOLLOWEE", strlen(allTokens[0])) == 0){ validateArguments(allTokens, 3); int val = addFollowee(allTokens[1], allTokens[2]); if(snprintf(response, MAX_RESPONSE_SIZE, "%i\n", val) < 0) { perror("Snprintf failed."); exit(SNPRINTF_FAILED); } } else if(strncmp(allTokens[0], "REMOVE_FOLLOWEE", strlen(allTokens[0])) == 0){ validateArguments(allTokens, 3); int val = removeFollowee(allTokens[1], allTokens[2]); if(snprintf(response, MAX_RESPONSE_SIZE, "%i\n", val) < 0) { perror("Snprintf failed."); exit(SNPRINTF_FAILED); } } else if(strncmp(allTokens[0], "DELETE_ACCOUNT", strlen(allTokens[0])) == 0){ validateArguments(allTokens, 2); int val = removeEntry(allTokens[1], CREDENTIALS_FILE, CREDENTIALS_ENTRY_SIZE, NUM_FIELDS_CREDENTIALS, "%s\t%s\n", 0, &credentialsMutex); //val represents if uname was deleted from credentials file removeEntry(allTokens[1], TWEETS_FILE, TWEET_ENTRY_SIZE, NUM_FIELDS_TWEETS, "%s\t%s\t%s\n", 0, &tweetsMutex); removeEntry(allTokens[1], FOLLOWEES_FILE, FOLLOWEES_ENTRY_SIZE, NUM_FIELDS_FOLLOWEES, "%s\t%s\n", 0, &followeesMutex); removeEntry(allTokens[1], FOLLOWEES_FILE, FOLLOWEES_ENTRY_SIZE, NUM_FIELDS_FOLLOWEES, "%s\t%s\n", 1, &followeesMutex); if(snprintf(response, MAX_RESPONSE_SIZE, "%i\n", val) < 0) { perror("Snprintf failed."); exit(SNPRINTF_FAILED); } } else{ exit(INVALID_SELECTION); } }
void Console::registerVariable(const std::string &name, Uint32 flags, Variable::Pointer &&ptr) { verifyRegistration(name, CON_Lang("Variable registration"), ptr == nullptr); // Sort lexicographically Size position = 0; for (const VarRecord &var : vars) { if (var.getName().compare(name) > 0) { break; } ++position; } vars.emplace(vars.begin() + position, name, flags, std::forward<Variable::Pointer>(ptr)); if (hasFlag(RegInfoFlag)) { print(CON_Format(CON_Lang("Variable registration: \"{0}\" has been successful\n")) << name); } }
void Console::registerCommand(const std::string &name, Command command) { verifyRegistration(CON_Lang("Command registration"), name, !command); CommandRecord newCommand(name, command); // Zaradi novy prikaz tak, aby byly setridene podle abecedy size_t position = 0; for (const CommandRecord &cmd : cmds) { if (cmd.getName().compare(name) > 0) { break; } ++position; } cmds.insert(cmds.begin() + position, newCommand); if (hasFlag(RegInfoFlag)) { print(CON_Format(CON_Lang("Command registration: \"{0}\" has been successful\n")) << name); } }