From 8f5086e03d80620ededcad052192e7247a91dcd8 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 18 Nov 2008 17:59:09 +0100 Subject: CommandManager und CommandParser als Singleton realisiert --- src/madc.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'src/madc.cpp') 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) { -- cgit v1.2.3