Author: tross
Date: Thu Nov  6 10:29:31 2008
New Revision: 711933

URL: http://svn.apache.org/viewvc?rev=711933&view=rev
Log:
QPID-1437 - Made example better able to demonstrate proper shutdown by adding a 
signal handler

Modified:
    incubator/qpid/trunk/qpid/cpp/examples/qmf-agent/example.cpp

Modified: incubator/qpid/trunk/qpid/cpp/examples/qmf-agent/example.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/qmf-agent/example.cpp?rev=711933&r1=711932&r2=711933&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/qmf-agent/example.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/qmf-agent/example.cpp Thu Nov  6 
10:29:31 2008
@@ -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 @@
 //==============================================================
 // 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);


Reply via email to