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