summaryrefslogtreecommitdiffstats
path: root/src/madc.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-11-18 17:59:09 +0100
committerMatthias Schiffer <matthias@gamezock.de>2008-11-18 17:59:09 +0100
commit8f5086e03d80620ededcad052192e7247a91dcd8 (patch)
treec3afec572c7103b20f75c2601e694e2981959659 /src/madc.cpp
parent62ca019532b28527facf6ab133742c2a190f15d6 (diff)
downloadmad-8f5086e03d80620ededcad052192e7247a91dcd8.tar
mad-8f5086e03d80620ededcad052192e7247a91dcd8.zip
CommandManager und CommandParser als Singleton realisiert
Diffstat (limited to 'src/madc.cpp')
-rw-r--r--src/madc.cpp17
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) {