diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp index b9cfff8d090..261d117eee3 100644 --- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp +++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp @@ -180,6 +180,50 @@ TAO_CosNotify_Service::init (int argc, ACE_TCHAR *argv[]) properties->defaultSupplierAdminFilterOp (op); arg_shifter.consume_arg (); } + else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ValidateClient")) == 0) + { + arg_shifter.consume_arg (); + TAO_Notify_PROPERTIES::instance()->validate_client (true); + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Using reactive client control.\n"))); + } + else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ValidateClientDelay")) == 0) + { + current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-ValidateClientDelay")); + if (current_arg != 0) + { + ACE_Time_Value tv (ACE_OS::atoi (current_arg)); + TAO_Notify_PROPERTIES::instance()->validate_client_delay (tv); + } + else + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%P|%t) WARNING: Unrecognized ") + ACE_TEXT ("argument (%s). Ignoring invalid ") + ACE_TEXT ("-ValidateClientDelay usage.\n"), + (current_arg == 0 ? ACE_TEXT ("''") : current_arg))); + } + if (current_arg != 0) + arg_shifter.consume_arg (); + } + else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ValidateClientInterval")) == 0) + { + current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-ValidateClientInterval")); + if (current_arg != 0) + { + ACE_Time_Value tv (ACE_OS::atoi (current_arg)); + TAO_Notify_PROPERTIES::instance()->validate_client_interval (tv); + } + else + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("(%P|%t) WARNING: Unrecognized ") + ACE_TEXT ("argument (%s). Ignoring invalid ") + ACE_TEXT ("-ValidateClientDelay usage.\n"), + (current_arg == 0 ? ACE_TEXT ("''") : current_arg))); + } + if (current_arg != 0) + arg_shifter.consume_arg (); + } else { ACE_ERROR ((LM_ERROR, @@ -341,6 +385,12 @@ TAO_CosNotify_Service::finalize_service ( // We're shutting things down, so ignore exceptions } } + + TAO_Notify_EventChannelFactory* necf = + dynamic_cast<TAO_Notify_EventChannelFactory*> (ecf->_servant ()); + if (necf != 0) + necf->stop_validator(); + } void |