summaryrefslogtreecommitdiff
path: root/TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp')
-rw-r--r--TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp182
1 files changed, 101 insertions, 81 deletions
diff --git a/TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp b/TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp
index e123955c181..723a255ed39 100644
--- a/TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp
+++ b/TAO/examples/Callback_Quoter/Consumer_Input_Handler.cpp
@@ -33,34 +33,47 @@ Consumer_Input_Handler::handle_input (ACE_HANDLE)
// CORBA::Environment TAO_IN_ENV;
- // The string could read contains \n\0 hence using ACE_OS::read
- // which returns the no of bytes read and hence i can manipulate
- // and remove the devil from the picture i.e '\n' ! ;)
-
- ssize_t strlen = ACE_OS::read (ACE_STDIN,
- buf,
- sizeof buf);
- if (buf[strlen -1] == '\n')
- buf[strlen -1] = '\0';
-
- switch (tolower (buf[0]))
+ ACE_TRY_NEW_ENV
{
- case Consumer_Input_Handler::REGISTER:
- {
- this->register_consumer ();
- break;
- }
- case Consumer_Input_Handler::UNREGISTER:
- {
- this->unregister_consumer ();
- break;
- }
- case Consumer_Input_Handler::EXIT:
- {
- this->quit_consumer_process ();
- break;
- }
+ // The string could read contains \n\0 hence using ACE_OS::read
+ // which returns the no of bytes read and hence i can manipulate
+ // and remove the devil from the picture i.e '\n' ! ;)
+
+ ssize_t strlen = ACE_OS::read (ACE_STDIN,
+ buf,
+ sizeof buf);
+ if (buf[strlen -1] == '\n')
+ buf[strlen -1] = '\0';
+
+ switch (tolower (buf[0]))
+ {
+ case Consumer_Input_Handler::REGISTER:
+ {
+ register_consumer ();
+ ACE_TRY_CHECK;
+ break;
+ }
+ case Consumer_Input_Handler::UNREGISTER:
+ {
+ unregister_consumer ();
+ ACE_TRY_CHECK;
+ break;
+ }
+ case Consumer_Input_Handler::EXIT:
+ {
+ quit_consumer_process ();
+ ACE_TRY_CHECK;
+ break;
+ }
+ }
+ }
+ ACE_CATCHANY
+ {
+ ACE_TRY_ENV.print_exception ("Input_Handler::init");
+ return -1;
}
+ ACE_ENDTRY;
+
return 0;
}
@@ -69,67 +82,66 @@ int
Consumer_Input_Handler::register_consumer ()
{
- // Get the stockname the consumer is interested in.
- char stockname[BUFSIZ];
-
- ACE_DEBUG ((LM_DEBUG,
- "Stockname?"));
+ //CORBA::Environment ACE_TRY_ENV;
- ssize_t strlen = ACE_OS::read (ACE_STDIN,
- stockname,
- sizeof stockname - 1);
+ ACE_TRY_NEW_ENV
+ {
+ // Get the stockname the consumer is interested in.
+ char stockname[BUFSIZ];
- // Taking care of platforms where an carriage return is padded with newline.
- if (stockname[strlen -2] == '\n' || stockname[strlen -2] == '\r')
- stockname[strlen -2] = '\0';
- else
- if (stockname[strlen -1] == '\n' || stockname[strlen -1] == '\r')
- stockname[strlen -1] = '\0';
+ ACE_DEBUG ((LM_DEBUG,
+ "Stockname?"));
+
+ ssize_t strlen = ACE_OS::read (ACE_STDIN,
+ stockname,
+ sizeof stockname - 1);
+
+ // Taking care of platforms where an carriage return is padded with newline.
+ if (stockname[strlen -2] == '\n' || stockname[strlen -2] == '\r')
+ stockname[strlen -2] = '\0';
+ else
+ if (stockname[strlen -1] == '\n' || stockname[strlen -1] == '\r')
+ stockname[strlen -1] = '\0';
- this->consumer_handler_->stock_name_ = stockname;
-
- // Get the threshold value.
- char needed_stock_value[BUFSIZ];
- ACE_DEBUG ((LM_DEBUG,
- "Threshold Stock value?"));
+ this->consumer_handler_->stock_name_ = stockname;
- strlen = ACE_OS::read (ACE_STDIN,
- needed_stock_value,
- sizeof needed_stock_value);
+ // Get the threshold value.
+ char needed_stock_value[BUFSIZ];
+ ACE_DEBUG ((LM_DEBUG,
+ "Threshold Stock value?"));
- if (needed_stock_value[strlen -1] == '\n')
- needed_stock_value[strlen -1] = '\0';
+ strlen = ACE_OS::read (ACE_STDIN,
+ needed_stock_value,
+ sizeof needed_stock_value);
- this->consumer_handler_->threshold_value_ =
- ACE_OS::atoi (needed_stock_value);
+ if (needed_stock_value[strlen -1] == '\n')
+ needed_stock_value[strlen -1] = '\0';
- ACE_DECLARE_NEW_CORBA_ENV;
+ this->consumer_handler_->threshold_value_ =
+ ACE_OS::atoi (needed_stock_value);
- ACE_TRY
- {
-
// Register with the server.
this->consumer_handler_->server_->register_callback (this->consumer_handler_->stock_name_,
- this->consumer_handler_->threshold_value_,
- this->consumer_handler_->consumer_var_.in (),
- ACE_TRY_ENV);
+ this->consumer_handler_->threshold_value_,
+ this->consumer_handler_->consumer_var_.in (),
+ ACE_TRY_ENV);
ACE_TRY_CHECK;
-
+
// Note the registration.
consumer_handler_->registered_ = 1;
consumer_handler_->unregistered_ = 0;
-
+
ACE_DEBUG ((LM_DEBUG,
- "registeration done!\n"));
+ "registeration done!\n"));
}
+
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"Consumer_Input_Handler::register_consumer()\n");
+ ACE_TRY_ENV.print_exception ("Consumer_Input_Handler::register_consumer()\n");
return -1;
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (-1);
return 0;
}
@@ -144,21 +156,32 @@ Consumer_Input_Handler::unregister_consumer ()
//CORBA::Environment ACE_TRY_ENV;
- if (consumer_handler_->registered_ == 1)
+ ACE_TRY_NEW_ENV
{
- this->consumer_handler_->server_->unregister_callback (this->consumer_handler_->consumer_var_.in());
-
- ACE_DEBUG ((LM_DEBUG,
- " Consumer Unregistered \n "));
- consumer_handler_->unregistered_ = 1;
- consumer_handler_->registered_ = 0;
+ if (consumer_handler_->registered_ == 1)
+ {
+ this->consumer_handler_->server_->unregister_callback (this->consumer_handler_->consumer_var_.in());
+
+ ACE_TRY_CHECK;
+
+ ACE_DEBUG ((LM_DEBUG,
+ " Consumer Unregistered \n "));
+ consumer_handler_->unregistered_ = 1;
+ consumer_handler_->registered_ = 0;
+ }
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ " Invalid Operation: Consumer not Registered\n"));
+
+ }
+ ACE_CATCHANY
+ {
+ ACE_TRY_ENV.print_exception ("Consumer_Input_Handler::unregister_consumer()");
+ return -1;
}
- else
- ACE_DEBUG ((LM_DEBUG,
- " Invalid Operation: Consumer not Registered\n"));
+ ACE_ENDTRY;
-
- return 0;
+return 0;
}
int
@@ -167,9 +190,7 @@ Consumer_Input_Handler::quit_consumer_process ()
// Only if the consumer is registered and wants to shut
// down, its necessary to unregister and then shutdown.
- ACE_DECLARE_NEW_CORBA_ENV;
-
- ACE_TRY
+ ACE_TRY_NEW_ENV
{
if (consumer_handler_->unregistered_ != 1 && consumer_handler_->registered_ == 1)
{
@@ -201,7 +222,6 @@ Consumer_Input_Handler::quit_consumer_process ()
return -1;
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (-1);
return 0;
}