- Rewrote Command::factory to construct all commands, indexed by
  primary command keyword.
This commit is contained in:
Paul Beckingham
2011-05-23 22:12:40 -04:00
parent f53d509930
commit 8e4a757200
3 changed files with 16 additions and 17 deletions

View File

@@ -37,20 +37,15 @@
extern Context context;
////////////////////////////////////////////////////////////////////////////////
Command* Command::factory (const std::string& name)
void Command::factory (std::map <std::string, Command*>& all)
{
Command* command;
if (name == "execute") command = new CmdExec ();
else if (name == "help") command = new CmdHelp ();
else if (name == "install") command = new CmdInstall ();
else if (name == "tip") command = new CmdTip ();
else if (name == "_logo") command = new CmdLogo ();
else
throw std::string ("Unrecognized command object '") + name + "'";
Command* c;
// TODO Initialize command object.
return command;
c = new CmdExec (); all[c->keyword ()] = c;
c = new CmdHelp (); all[c->keyword ()] = c;
c = new CmdInstall (); all[c->keyword ()] = c;
c = new CmdLogo (); all[c->keyword ()] = c;
c = new CmdTip (); all[c->keyword ()] = c;
}
////////////////////////////////////////////////////////////////////////////////