msh-console/command.cpp

34 lines
790 B
C++

#include "shell.h"
Command::Command(const string& n, int (*funcptr)(const vector<string>* args, CommandExecutor*)) : name(n) , funcCommand(funcptr){
checkObj();
numCom++;
}
int Command::execute(const vector<string>* args, CommandExecutor* ciao){
if(args==nullptr) return -1;
return (*funcCommand)(args, ciao);
}
string Command::getName(){
return this->name;
}
Command::Command(const Command& old) : name(old.name) , funcCommand(old.funcCommand){
checkObj();
numCom++;
}
void Command::checkObj(){
for(unsigned int i=0; i<name.length(); i++){
if(!((name[i]>'a'&&name[i]<'z')||(name[i]>'A'&&name[i]<'Z'))){
throw CommandNameNotValidException();
}
}
}
Command::~Command(){
numCom--;
}
unsigned int Command::numCom = 0;