summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkolpackov <kolpackov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-01-18 19:15:13 +0000
committerkolpackov <kolpackov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-01-18 19:15:13 +0000
commiteaa64a5d392350ca0b2f6feef361a5c110aa8258 (patch)
treed7e79a2f79654a371e6bb2cfdd8f9e1d72986f75
parentc961ae6f4f05d493b3a827d679419b93210dec84 (diff)
downloadATCD-eaa64a5d392350ca0b2f6feef361a5c110aa8258.tar.gz
*** empty log message ***
-rw-r--r--TAO/tao/Marshal.cpp12
-rw-r--r--TAO/tao/Marshal.h29
-rw-r--r--TAO/tao/Marshal.i6
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)
+{
+}