summaryrefslogtreecommitdiff
path: root/TAO/examples/Event_Comm/supplier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Event_Comm/supplier.cpp')
-rw-r--r--TAO/examples/Event_Comm/supplier.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/TAO/examples/Event_Comm/supplier.cpp b/TAO/examples/Event_Comm/supplier.cpp
new file mode 100644
index 00000000000..c44b6123b8d
--- /dev/null
+++ b/TAO/examples/Event_Comm/supplier.cpp
@@ -0,0 +1,85 @@
+// $Id$
+
+#include "Notifier_Handler.h"
+#include "Supplier_Input_Handler.h"
+#include "supplier.h"
+
+ACE_RCSID(Supplier, supplier, "$Id$")
+Supplier::Supplier (void)
+{
+ // No-Op.
+}
+
+Supplier::~Supplier (void)
+{
+ // No-Op.
+}
+
+int
+Supplier::handle_signal (int signum, siginfo_t *, ucontext_t *)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%S\n",
+ signum));
+
+ this->close ();
+ return 0;
+}
+
+void
+Supplier::run (void)
+{
+ if (nh_.run () == -1)
+ ACE_ERROR ((LM_ERROR,
+ "%p\n",
+ "Notifier_Handler::run"));
+}
+
+void
+Supplier::close (void)
+{
+ ih_.close ();
+ nh_.close ();
+}
+
+int
+Supplier::init (int argc, char *argv[])
+{
+ if (this->nh_.init (argc, argv, this) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "Notifier_Handler did not init\n"),
+ -1);
+ else if (this->ih_.initialize (&nh_) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "Supplier Input handler did not init\n"),
+ -1);
+ else if (nh_.reactor ()->register_handler (SIGINT,
+ this) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "register_handler"),
+ -1);
+ ACE_DEBUG ((LM_DEBUG,
+ "Supplier initialized.. \n"));
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ // Initialize server daemon.
+ Supplier supplier;
+
+ if (supplier.init (argc, argv) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%p\n",
+ "supplier init failed"),
+ 1);
+
+ // Loop forever handling events.
+ supplier.run ();
+
+ return 0;
+}