diff options
Diffstat (limited to 'TAO/examples/Event_Comm/supplier.cpp')
-rw-r--r-- | TAO/examples/Event_Comm/supplier.cpp | 85 |
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; +} |