summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/ImplRepo_Service
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2005-04-22 19:25:13 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2005-04-22 19:25:13 +0000
commit581353844c6d5ad389fcc25d3dbaa9cdb8b24654 (patch)
tree984fe140952e8eef12acf304d013adffeb3a4cb8 /TAO/orbsvcs/ImplRepo_Service
parent3f2d906c547515516d25b149d315d0d19cc3c517 (diff)
downloadATCD-581353844c6d5ad389fcc25d3dbaa9cdb8b24654.tar.gz
ChangeLogTag:Fri Apr 22 12:17:09 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service')
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h7
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Forwarder.h7
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/INS_Locator.h7
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp19
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h2
5 files changed, 34 insertions, 8 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
index 8e2d0ed52f3..d62d8f3cfcf 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.h
@@ -22,6 +22,9 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "tao/LocalObject.h"
+
+
/**
* @class ImR_Adapter_Activator
*
@@ -32,7 +35,9 @@
* the POA structure that the request expects. For each POA created, the
* same ServantLocator will be registered in each one.
*/
-class ImR_Adapter : public PortableServer::AdapterActivator
+class ImR_Adapter
+ : public PortableServer::AdapterActivator,
+ public CORBA::LocalObject
{
public:
ImR_Adapter();
diff --git a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
index ef5a8f2a8b6..7ab53c376ff 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Forwarder.h
@@ -23,6 +23,9 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "tao/LocalObject.h"
+
+
class ImR_Locator_i;
/**
@@ -34,7 +37,9 @@ class ImR_Locator_i;
* is used to handle arbitrary calls and forward them to the
* correct place.
*/
-class ImR_Forwarder: public PortableServer::ServantLocator
+class ImR_Forwarder
+ : public PortableServer::ServantLocator,
+ public CORBA::LocalObject
{
public:
ImR_Forwarder (ImR_Locator_i& imr_impl);
diff --git a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
index 0536aac2fb0..88fca61b5ba 100644
--- a/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
+++ b/TAO/orbsvcs/ImplRepo_Service/INS_Locator.h
@@ -21,6 +21,9 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "tao/LocalObject.h"
+
+
class ImR_Locator_i;
/**
@@ -31,7 +34,9 @@ class ImR_Locator_i;
* This class provides a callback for the IORTable to call when it needs
* to dynamically receive a IOR to forward in response to an INS request.
*/
-class INS_Locator : public virtual IORTable::Locator
+class INS_Locator
+ : public virtual IORTable::Locator,
+ public virtual CORBA::LocalObject
{
public:
INS_Locator (ImR_Locator_i& loc);
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
index 531855b30d7..adc06001a88 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
@@ -55,14 +55,23 @@ createPersistentPOA(PortableServer::POA_ptr root_poa, const char* poa_name ACE_E
return poa._retn();
}
-ImR_Locator_i::ImR_Locator_i ()
-: forwarder_(*this)
-, ins_locator_(*this)
-, debug_(0)
-, read_only_(false)
+ImR_Locator_i::ImR_Locator_i (void)
+ : forwarder_(*this)
+ , ins_locator_(*this)
+ , debug_(0)
+ , read_only_(false)
{
}
+ImR_Locator_i::~ImR_Locator_i (void)
+{
+ // For some reason g++ 4.0 needs this out-of-line destructor instead
+ // of the default one generated by the compiler. Without this
+ // destructor, we get a number of "undefined reference" link errors
+ // related to the virtual tables of the INS_Locator, ImR_Adapter and
+ // ImR_Forwarder members in this class.
+}
+
int
ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts ACE_ENV_ARG_DECL)
{
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
index ff8a7603a44..414ee3ccec0 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
@@ -34,6 +34,8 @@ class Locator_Export ImR_Locator_i
public:
ImR_Locator_i();
+ ~ImR_Locator_i (void);
+
/// Initialize the service, creating its own orb, poa, etc.
int init (Options& opts ACE_ENV_ARG_DECL);