summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Messaging')
-rw-r--r--TAO/tao/Messaging/ExceptionHolderC.cpp44
-rw-r--r--TAO/tao/Messaging/ExceptionHolderC.h7
2 files changed, 25 insertions, 26 deletions
diff --git a/TAO/tao/Messaging/ExceptionHolderC.cpp b/TAO/tao/Messaging/ExceptionHolderC.cpp
index 8de5efc6d7b..3c9396ae7da 100644
--- a/TAO/tao/Messaging/ExceptionHolderC.cpp
+++ b/TAO/tao/Messaging/ExceptionHolderC.cpp
@@ -90,6 +90,12 @@ Messaging::ExceptionHolder::_tao_obv_repository_id (void) const
}
void
+Messaging::ExceptionHolder::_tao_obv_truncatable_repo_ids (Repository_Id_List& ids) const
+{
+ ids.push_back (this->_tao_obv_static_repository_id ());
+}
+
+void
Messaging::ExceptionHolder::_tao_any_destructor (void *_tao_void_pointer)
{
ExceptionHolder *_tao_tmp_pointer =
@@ -100,57 +106,49 @@ Messaging::ExceptionHolder::_tao_any_destructor (void *_tao_void_pointer)
Messaging::ExceptionHolder::~ExceptionHolder (void)
{}
-::CORBA::Boolean Messaging::ExceptionHolder::_tao_marshal_v (TAO_OutputCDR & strm) const
+::CORBA::Boolean
+Messaging::ExceptionHolder::_tao_marshal_v (TAO_OutputCDR & strm) const
{
return this->_tao_marshal__Messaging_ExceptionHolder (strm);
}
-::CORBA::Boolean Messaging::ExceptionHolder::_tao_unmarshal_v (TAO_InputCDR & strm)
+::CORBA::Boolean
+Messaging::ExceptionHolder::_tao_unmarshal_v (TAO_InputCDR & strm)
{
return this->_tao_unmarshal__Messaging_ExceptionHolder (strm);
}
-::CORBA::Boolean Messaging::ExceptionHolder::_tao_unmarshal (
+::CORBA::Boolean
+Messaging::ExceptionHolder::_tao_match_formal_type (ptrdiff_t formal_type_id) const
+{
+ return formal_type_id ==
+ reinterpret_cast<ptrdiff_t>(&Messaging::ExceptionHolder::_downcast);
+}
+
+::CORBA::Boolean
+Messaging::ExceptionHolder::_tao_unmarshal (
TAO_InputCDR &strm,
ExceptionHolder *&new_object
)
{
::CORBA::ValueBase *base = 0;
- ::CORBA::ValueFactory_var factory;
::CORBA::Boolean retval =
::CORBA::ValueBase::_tao_unmarshal_pre (
strm,
- factory.out (),
base,
ExceptionHolder::_tao_obv_static_repository_id ()
);
if (retval == 0)
- {
return 0;
- }
- if (factory.in () != 0)
- {
- base = factory->create_for_unmarshal ();
-
- if (base == 0)
- {
- return 0; // %! except.?
- }
-
- retval = base->_tao_unmarshal_v (strm);
-
- if (retval == 0)
- {
+ if (base != 0 && !base->_tao_unmarshal_v (strm))
return 0;
- }
- }
// Now base must be null or point to the unmarshaled object.
// Align the pointer to the right subobject.
new_object = ExceptionHolder::_downcast (base);
- return retval;
+ return 1;
}
// TAO_IDL - Generated from
diff --git a/TAO/tao/Messaging/ExceptionHolderC.h b/TAO/tao/Messaging/ExceptionHolderC.h
index 841d6712b25..edbcde265bd 100644
--- a/TAO/tao/Messaging/ExceptionHolderC.h
+++ b/TAO/tao/Messaging/ExceptionHolderC.h
@@ -42,7 +42,7 @@
#include "tao/Messaging/messaging_export.h"
#include "tao/Valuetype/ValueBase.h"
-#include "tao/Valuetype/Valuetype_Adapter_Impl.h"
+#include "tao/Valuetype/Valuetype_Adapter_Factory_Impl.h"
#include "tao/ORB.h"
#include "tao/SystemException.h"
#include "tao/Environment.h"
@@ -109,6 +109,8 @@ namespace Messaging
virtual const char* _tao_obv_repository_id (void) const;
+ virtual void _tao_obv_truncatable_repo_ids (Repository_Id_List &) const;
+
static const char* _tao_obv_static_repository_id (void);
static void _tao_any_destructor (void *);
@@ -160,6 +162,7 @@ namespace Messaging
virtual ::CORBA::Boolean _tao_marshal_v (TAO_OutputCDR &) const;
virtual ::CORBA::Boolean _tao_unmarshal_v (TAO_InputCDR &);
+ virtual ::CORBA::Boolean _tao_match_formal_type (ptrdiff_t ) const;
private:
ExceptionHolder (const ExceptionHolder &);
@@ -295,5 +298,3 @@ TAO_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif /* ifndef */
-
-