#include "CommandList.h" #include "Log.h" namespace core { void CommandList::add(Command &command, std::string name) { command.setName(name); commands.push_back(&command); } void CommandList::remove(Command &command) { } bool CommandList::processRequest(std::string request, TCPSession *session, std::stringstream &data) { if(session->grab != NULL) return session->grab->processCommand(request, session, data); else { int pos = request.find(" "); std::string function = pos == request.npos ? request: request.substr(0, pos); for(auto *command : commands) if(command->check(function)) return command->processCommand(request, session, data); } return false; } bool CommandList::grabInput(TCPSession *session, Command &command) { session->grab = &command; return true; } void CommandList::clearGrab(TCPSession *session) { session->grab = NULL; } int CommandList::processCommand(std::string request, TCPSession *session, std::stringstream &data) { for(Command *command : commands) data << command->getName() << std::endl; return true; } }