diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-11-18 17:59:09 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-11-18 17:59:09 +0100 |
commit | 8f5086e03d80620ededcad052192e7247a91dcd8 (patch) | |
tree | c3afec572c7103b20f75c2601e694e2981959659 /src/madc.cpp | |
parent | 62ca019532b28527facf6ab133742c2a190f15d6 (diff) | |
download | mad-8f5086e03d80620ededcad052192e7247a91dcd8.tar mad-8f5086e03d80620ededcad052192e7247a91dcd8.zip |
CommandManager und CommandParser als Singleton realisiert
Diffstat (limited to 'src/madc.cpp')
-rw-r--r-- | src/madc.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/madc.cpp b/src/madc.cpp index f74f925..b758ec8 100644 --- a/src/madc.cpp +++ b/src/madc.cpp @@ -38,24 +38,21 @@ using namespace Mad; -static Client::CommandParser *parser; - - static void usage(const std::string &cmd) { std::cerr << "Usage: " << cmd << " address[:port]" << std::endl; } static void handleCommand(char *cmd) { if(!cmd) - parser->requestDisconnect(); + Client::CommandParser::getCommandParser()->requestDisconnect(); else if(!*cmd) return; else { - parser->parse(cmd); + Client::CommandParser::getCommandParser()->parse(cmd); add_history(cmd); } - if(parser->requestsActive()) { + if(Client::CommandParser::getCommandParser()->requestsActive()) { rl_callback_handler_remove(); Net::FdManager::getFdManager()->setFdEvents(STDIN_FILENO, 0); } @@ -67,7 +64,7 @@ static void charHandler(short events) { } static void activateReadline() { - if(parser->willDisconnect()) + if(Client::CommandParser::getCommandParser()->willDisconnect()) return; rl_callback_handler_install("mad> ", handleCommand); @@ -111,8 +108,8 @@ int main(int argc, char *argv[]) { std::cerr << " done." << std::endl << std::endl; - parser = new Mad::Client::CommandParser(connection); - parser->signalFinished().connect(sigc::ptr_fun(activateReadline)); + Client::CommandParser::getCommandParser()->setConnection(connection); + Client::CommandParser::getCommandParser()->signalFinished().connect(sigc::ptr_fun(activateReadline)); Net::FdManager::getFdManager()->registerFd(STDIN_FILENO, sigc::ptr_fun(charHandler)); @@ -123,8 +120,6 @@ int main(int argc, char *argv[]) { Net::FdManager::getFdManager()->unregisterFd(STDIN_FILENO); - delete parser; - Common::RequestManager::getRequestManager()->unregisterConnection(connection); } catch(Mad::Common::Exception &e) { |