summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordai_y <dai_y@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-08-22 20:34:57 +0000
committerdai_y <dai_y@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-08-22 20:34:57 +0000
commit7563932b27c915c308f4eb43936aa67284e31704 (patch)
tree84613bf5246ffa979329bcd1c9b238550a231d64
parent7f72573113a36418e3bc1bce54ea85d74d8a1972 (diff)
downloadATCD-7563932b27c915c308f4eb43936aa67284e31704.tar.gz
Tue Aug 22 20:28:26 UTC 2006 Yan Dai <dai_y@ociweb.com>
-rw-r--r--TAO/ChangeLog15
-rw-r--r--TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.cpp8
-rw-r--r--TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.h3
-rw-r--r--TAO/tao/PortableServer/DII_Arguments_Converter.cpp48
-rw-r--r--TAO/tao/PortableServer/DII_Arguments_Converter.h16
5 files changed, 80 insertions, 10 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index edeb5e99b42..54b39a548f0 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,18 @@
+Tue Aug 22 20:28:26 UTC 2006 Yan Dai <dai_y@ociweb.com>
+
+ * tao\PortableServer\DII_Arguments_Converter.cpp:
+ * tao\PortableServer\DII_Arguments_Converter.h:
+ * tao\DynamicInterface\DII_Arguments_Converter_Impl.h:
+ * tao\DynamicInterface\DII_Arguments_Converter_Impl.cpp:
+
+ Made the TAO_DII_Arguments_Converter service object registered
+ when PortableServer is loaded and the TAO_DII_Arguments_Converter_Impl
+ will overwrite the registered "DII_Arguments_Converter" service
+ object. This would fix failure of dynamic_cast from the service object
+ the TAO_DII_Arguments_Converter object on FC4 with gcc4.x builds.
+ This should fix the $TAO_ROOT/tests/DII_Collocation_Tests/oneway
+ test failure on FC4 with gcc4.x builds.
+
Tue Aug 22 19:39:07 UTC 2006 Ciju John <john@ociweb.com>
* orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventConsumerMain.cpp:
diff --git a/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.cpp b/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.cpp
index c3b81769f90..e24c853c9c5 100644
--- a/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.cpp
+++ b/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.cpp
@@ -13,11 +13,6 @@ ACE_RCSID (DynamicInterface,
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-TAO_DII_Arguments_Converter_Impl::~TAO_DII_Arguments_Converter_Impl (void)
-{
-}
-
-
void
TAO_DII_Arguments_Converter_Impl::convert (
TAO_ServerRequest & server_request,
@@ -91,7 +86,8 @@ TAO_DII_Arguments_Converter_Impl::convert (
int
TAO_DII_Arguments_Converter_Impl::Initializer (void)
{
- return ACE_Service_Config::process_directive (ace_svc_desc_TAO_DII_Arguments_Converter_Impl);
+ return ACE_Service_Config::process_directive (
+ ace_svc_desc_TAO_DII_Arguments_Converter_Impl, 1);
}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.h b/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.h
index de3811aa705..dbb4042a4c1 100644
--- a/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.h
+++ b/TAO/tao/DynamicInterface/DII_Arguments_Converter_Impl.h
@@ -41,7 +41,6 @@ class TAO_DynamicInterface_Export TAO_DII_Arguments_Converter_Impl
: public TAO_DII_Arguments_Converter
{
public:
- virtual ~TAO_DII_Arguments_Converter_Impl (void);
virtual void convert ( TAO_ServerRequest & server_request,
TAO::Argument * const args[],
@@ -53,7 +52,7 @@ public:
};
static int
-TAO_Requires_DII_Arguments_Converter_Initializer =
+TAO_Requires_DII_Arguments_Converter_Impl_Initializer =
TAO_DII_Arguments_Converter_Impl::Initializer ();
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/PortableServer/DII_Arguments_Converter.cpp b/TAO/tao/PortableServer/DII_Arguments_Converter.cpp
new file mode 100644
index 00000000000..f94dee5e75a
--- /dev/null
+++ b/TAO/tao/PortableServer/DII_Arguments_Converter.cpp
@@ -0,0 +1,48 @@
+// @(#) $Id$
+
+#include "tao/PortableServer/DII_Arguments_Converter.h"
+#include "ace/Service_Config.h"
+
+ACE_RCSID(PortableServer,
+ DII_Arguments_Converter,
+ "$Id$")
+
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+void TAO_DII_Arguments_Converter::convert (
+TAO_ServerRequest & ,
+TAO::Argument * const [],
+size_t
+ACE_ENV_ARG_DECL )
+{
+#if defined (ACE_HAS_EXCEPTIONS)
+ ACE_THROW (CORBA::INTERNAL ());
+#else
+ ACE_OS::abort ();
+#endif /* ACE_HAS_EXCEPTIONS */
+}
+
+
+int
+TAO_DII_Arguments_Converter::Initializer (void)
+{
+ return ACE_Service_Config::process_directive (ace_svc_desc_TAO_DII_Arguments_Converter);
+}
+
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+
+ACE_STATIC_SVC_DEFINE (
+ TAO_DII_Arguments_Converter,
+ ACE_TEXT ("DII_Arguments_Converter"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_DII_Arguments_Converter),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0
+ )
+
+ACE_FACTORY_DEFINE (TAO_PortableServer, TAO_DII_Arguments_Converter)
+
+
diff --git a/TAO/tao/PortableServer/DII_Arguments_Converter.h b/TAO/tao/PortableServer/DII_Arguments_Converter.h
index 69a16c29f91..6fdf4f387d2 100644
--- a/TAO/tao/PortableServer/DII_Arguments_Converter.h
+++ b/TAO/tao/PortableServer/DII_Arguments_Converter.h
@@ -40,15 +40,27 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
class TAO_PortableServer_Export TAO_DII_Arguments_Converter : public ACE_Service_Object
{
public:
-
+
virtual void convert ( TAO_ServerRequest & server_request,
TAO::Argument * const args[],
size_t nargs
- ACE_ENV_ARG_DECL ) = 0;
+ ACE_ENV_ARG_DECL );
+ static int Initializer ();
};
+
+static int
+TAO_Requires_DII_Arguments_Converter_Initializer =
+ TAO_DII_Arguments_Converter::Initializer ();
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
+ ACE_STATIC_SVC_DECLARE (TAO_DII_Arguments_Converter)
+ ACE_FACTORY_DECLARE (TAO_PortableServer, TAO_DII_Arguments_Converter)
+
+
#include /**/ "ace/post.h"
#endif /* TAO_DII_ARGUMENTS_CONVERTER_H */
+