diff options
author | kolpackov <kolpackov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-01-18 19:15:13 +0000 |
---|---|---|
committer | kolpackov <kolpackov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-01-18 19:15:13 +0000 |
commit | eaa64a5d392350ca0b2f6feef361a5c110aa8258 (patch) | |
tree | d7e79a2f79654a371e6bb2cfdd8f9e1d72986f75 | |
parent | c961ae6f4f05d493b3a827d679419b93210dec84 (diff) | |
download | ATCD-eaa64a5d392350ca0b2f6feef361a5c110aa8258.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/tao/Marshal.cpp | 12 | ||||
-rw-r--r-- | TAO/tao/Marshal.h | 29 | ||||
-rw-r--r-- | TAO/tao/Marshal.i | 6 |
3 files changed, 45 insertions, 2 deletions
diff --git a/TAO/tao/Marshal.cpp b/TAO/tao/Marshal.cpp index 03da59524b6..19f86d55362 100644 --- a/TAO/tao/Marshal.cpp +++ b/TAO/tao/Marshal.cpp @@ -47,7 +47,6 @@ TAO_Marshal_Object::perform_skip (CORBA::TypeCode_ptr tc, { default: case CORBA::tk_fixed: - case CORBA::tk_value: case CORBA::tk_value_box: case CORBA::tk_native: case CORBA::tk_abstract_interface: @@ -137,6 +136,11 @@ TAO_Marshal_Object::perform_skip (CORBA::TypeCode_ptr tc, TAO_Marshal_WString marshal; return marshal.skip (tc, stream TAO_ENV_ARG_PARAMETER); } + case CORBA::tk_value: + { + TAO_Marshal_Value marshal; + return marshal.skip (tc, stream TAO_ENV_ARG_PARAMETER); + } } } @@ -153,7 +157,6 @@ TAO_Marshal_Object::perform_append (CORBA::TypeCode_ptr tc, { default: case CORBA::tk_fixed: - case CORBA::tk_value: case CORBA::tk_value_box: case CORBA::tk_native: case CORBA::tk_abstract_interface: @@ -243,6 +246,11 @@ TAO_Marshal_Object::perform_append (CORBA::TypeCode_ptr tc, TAO_Marshal_WString marshal; return marshal.append (tc, src, dest TAO_ENV_ARG_PARAMETER); } + case CORBA::tk_value: + { + TAO_Marshal_Value marshal; + return marshal.append (tc, src, dest TAO_ENV_ARG_PARAMETER); + } } } diff --git a/TAO/tao/Marshal.h b/TAO/tao/Marshal.h index 934b508db3a..1e1b5aad274 100644 --- a/TAO/tao/Marshal.h +++ b/TAO/tao/Marshal.h @@ -47,6 +47,7 @@ class TAO_Marshal_Array; class TAO_Marshal_Alias; class TAO_Marshal_Except; class TAO_Marshal_WString; +class TAO_Marshal_Value; /** * @class TAO_Marshal_Object @@ -419,6 +420,34 @@ public: }; +/** + * @class TAO_Marshal_Value: + * + * @brief TAO_Marshal_Value + * + * marshal a valuetype + */ +class TAO_Export TAO_Marshal_Value: public TAO_Marshal_Object +{ +public: + TAO_Marshal_Value (void); + + /// skip operation + virtual CORBA::TypeCode::traverse_status skip (CORBA::TypeCode_ptr tc, + TAO_InputCDR *context + TAO_ENV_ARG_DECL); + + /// append operation + virtual CORBA::TypeCode::traverse_status append (CORBA::TypeCode_ptr tc, + TAO_InputCDR *src, + TAO_OutputCDR *dest + TAO_ENV_ARG_DECL); + +private: + CORBA::Boolean nested_processing_; + +}; + #if defined (__ACE_INLINE__) # include "tao/Marshal.i" #endif /* __ACE_INLINE__ */ diff --git a/TAO/tao/Marshal.i b/TAO/tao/Marshal.i index 3be95bbfeef..7d60b149e6a 100644 --- a/TAO/tao/Marshal.i +++ b/TAO/tao/Marshal.i @@ -69,3 +69,9 @@ ACE_INLINE TAO_Marshal_WString::TAO_Marshal_WString (void) { } + +ACE_INLINE +TAO_Marshal_Value::TAO_Marshal_Value (void) + : nested_processing_ (0) +{ +} |