summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-11-06 18:29:31 +0000
committerTed Ross <tross@apache.org>2008-11-06 18:29:31 +0000
commite8a9f9b9365c2f249c4edd58dde9e9e1347551a4 (patch)
treec6fc89d45d5de4b8c11ebc4aced1b66f9c600177
parent6e586ef534a4a49170074507ae8755f2e6e76802 (diff)
downloadqpid-python-e8a9f9b9365c2f249c4edd58dde9e9e1347551a4.tar.gz
QPID-1437 - Made example better able to demonstrate proper shutdown by adding a signal handler
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@711933 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/examples/qmf-agent/example.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp
index e24e729e1d..8c47a0c366 100644
--- a/qpid/cpp/examples/qmf-agent/example.cpp
+++ b/qpid/cpp/examples/qmf-agent/example.cpp
@@ -29,6 +29,7 @@
#include "qmf/org/apache/qpid/agent/example/EventChildCreated.h"
#include "qmf/org/apache/qpid/agent/example/Package.h"
+#include <signal.h>
#include <unistd.h>
#include <cstdlib>
#include <iostream>
@@ -149,14 +150,25 @@ ChildClass::ChildClass(ManagementAgent* agent, CoreClass* parent, string name)
//==============================================================
// Main program
//==============================================================
+
+ManagementAgent::Singleton* singleton;
+
+void shutdown(int)
+{
+ delete singleton;
+ exit(0);
+}
+
int main_int(int argc, char** argv)
{
- ManagementAgent::Singleton singleton;
+ singleton = new ManagementAgent::Singleton();
const char* host = argc>1 ? argv[1] : "127.0.0.1";
int port = argc>2 ? atoi(argv[2]) : 5672;
+ signal(SIGINT, shutdown);
+
// Create the qmf management agent
- ManagementAgent* agent = singleton.getInstance();
+ ManagementAgent* agent = singleton->getInstance();
// Register the Qmf_example schema with the agent
_qmf::Package packageInit(agent);