summaryrefslogtreecommitdiff
path: root/TAO/tao/WrongTransactionC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/WrongTransactionC.cpp')
-rw-r--r--TAO/tao/WrongTransactionC.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/TAO/tao/WrongTransactionC.cpp b/TAO/tao/WrongTransactionC.cpp
index f34fe86e722..3ca279cf001 100644
--- a/TAO/tao/WrongTransactionC.cpp
+++ b/TAO/tao/WrongTransactionC.cpp
@@ -33,6 +33,8 @@
#include "tao/CDR.h"
#include "tao/SystemException.h"
#include "ace/OS_NS_string.h"
+#include "tao/AnyTypeCode_Adapter.h"
+#include "ace/Dynamic_Service.h"
#if defined (__BORLANDC__)
#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig
@@ -149,9 +151,20 @@ void CORBA::WrongTransaction::_tao_decode (
// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr CORBA::WrongTransaction::_tao_type (void) const
{
- // @todo
- //return ::CORBA::_tc_WrongTransaction;
- return 0;
+ TAO_AnyTypeCode_Adapter *adapter =
+ ACE_Dynamic_Service<TAO_AnyTypeCode_Adapter>::instance (
+ "AnyTypeCode_Adapter"
+ );
+ if (adapter != 0)
+ return adapter->_tao_type_WrongTransaction ();
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("Unable to find the ")
+ ACE_TEXT ("AnyTypeCode Adapter instance")));
+ return 0;
+ }
}
// TAO_IDL - Generated from