summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs
diff options
context:
space:
mode:
authorcrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-02 17:54:24 +0000
committercrodrigu <crodrigu@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-02 17:54:24 +0000
commitd2c33e9a89b49f6c3e7ef710c62739af9a6adb0e (patch)
tree52650d8a6570f96665e5030684712a1ccfa430df /TAO/orbsvcs
parent35071522f1a1372cd9cfb369629c70a7e977d7ce (diff)
downloadATCD-d2c33e9a89b49f6c3e7ef710c62739af9a6adb0e.tar.gz
ChangeLogTag: Sun Jun 2 17:52:17 UTC 2002 Craig Rodrigues <crodrigu@bbn.com>
Diffstat (limited to 'TAO/orbsvcs')
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp38
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h3
2 files changed, 24 insertions, 17 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp
index 29cf08e133c..583fcc9e54e 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp
+++ b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp
@@ -29,16 +29,19 @@ TAO_IFR_Server::~TAO_IFR_Server (void)
// Get reactor instance from TAO.
ACE_Reactor *reactor = this->orb_->orb_core ()->reactor ();
- // Remove event handler for the ior multicast.
- if (reactor->remove_handler (this->ior_multicast_,
- ACE_Event_Handler::READ_MASK)
- == -1)
- {
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT ("Interface Repository: cannot remove handler\n")
- ));
- }
+ if ( this->ior_multicast_ )
+ {
+ // Remove event handler for the ior multicast.
+ if (reactor->remove_handler (this->ior_multicast_,
+ ACE_Event_Handler::READ_MASK)
+ == -1)
+ {
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT ("Interface Repository: cannot remove handler\n")
+ ));
+ }
+ }
CORBA::release (this->repository_);
delete this->config_;
@@ -48,7 +51,8 @@ TAO_IFR_Server::~TAO_IFR_Server (void)
int
TAO_IFR_Server::init_with_orb (int argc,
ACE_TCHAR *argv [],
- CORBA::ORB_ptr orb)
+ CORBA::ORB_ptr orb,
+ int use_multicast_server)
{
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
@@ -102,12 +106,14 @@ TAO_IFR_Server::init_with_orb (int argc,
if (retval != 0)
return retval;
- retval = this->init_multicast_server (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- if (retval != 0)
- return retval;
+ if (use_multicast_server)
+ {
+ retval = this->init_multicast_server (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ if (retval != 0)
+ return retval;
+ }
ACE_DEBUG ((LM_DEBUG,
"The IFR IOR is: <%s>\n",
this->ifr_ior_.in ()));
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h
index f053ae8fe84..bb4ac7f0ee3 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h
+++ b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h
@@ -42,7 +42,8 @@ public:
int init_with_orb (int argc,
ACE_TCHAR *argv [],
- CORBA::ORB_ptr orb);
+ CORBA::ORB_ptr orb,
+ int use_multicast_server=1 );
// Initialize the IFR Service with the command line arguments and
// the ORB.