summaryrefslogtreecommitdiff
path: root/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp')
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp b/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
new file mode 100644
index 00000000000..fe88a3eab8e
--- /dev/null
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/server_test.cpp
@@ -0,0 +1,54 @@
+// $Id$
+
+// The main test driver for the dynamically configured server.
+
+#include "ace/OS_NS_unistd.h"
+#include "ace/Service_Config.h"
+#include "ace/Reactor.h"
+#include "ace/Log_Msg.h"
+#include "ace/Signal.h"
+#include "ace/Sig_Adapter.h"
+
+ACE_RCSID(server, server_test, "$Id$")
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ if (ACE_Service_Config::open (argc,
+ argv,
+ ACE_DEFAULT_LOGGER_KEY,
+ 0) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Service_Config::open")),
+ -1);
+
+ // Create an adapter to end the event loop.
+ ACE_Sig_Adapter sa ((ACE_Sig_Handler_Ex) ACE_Reactor::end_event_loop);
+
+ ACE_Sig_Set sig_set;
+ sig_set.sig_add (SIGINT);
+ sig_set.sig_add (SIGQUIT);
+
+ // Register ourselves to receive signals so we can shut down
+ // gracefully.
+ if (ACE_Reactor::instance ()->register_handler (sig_set,
+ &sa) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"), ACE_TEXT ("register_handler")),
+ -1);
+
+ // This makes the README demo even easier (for sighup).
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("pid = %d\n"),
+ ACE_OS::getpid ()));
+
+ // Run forever, performing the configured services until we are shut
+ // down by a SIGINT/SIGQUIT signal.
+
+ // We use this version of the event loop so that reconfigurations
+ // are triggered properly.
+ ACE_Reactor::run_event_loop ();
+
+ return 0;
+}