#include "../include/Command.hpp" using namespace std; namespace dchat { static unordered_map commandHandlerFuncs; bool Command::add(const string &cmd, CommandHandlerFunc handlerFunc) { auto it = commandHandlerFuncs.find(cmd); if(it != commandHandlerFuncs.end()) return false; commandHandlerFuncs[cmd] = handlerFunc; return true; } bool Command::call(const string &cmd, const vector &args) { auto it = commandHandlerFuncs.find(cmd); if(it != commandHandlerFuncs.end()) { try { it->second(args); } catch(exception &e) { fprintf(stderr, "Failed while executing command %s, reason: %s\n", cmd.c_str(), e.what()); } return true; } return false; } const std::unordered_map& Command::getCommands() { return commandHandlerFuncs; } }