35 lines
790 B
C++
35 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;
|