#include <Marshal.h>
Inheritance diagram for TAO_Marshal_Object:
Public Member Functions | |
TAO_Marshal_Object (void) | |
constructor | |
virtual | ~TAO_Marshal_Object (void) |
destructor | |
virtual TAO::traverse_status | skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context)=0 |
skip operation | |
virtual TAO::traverse_status | append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest)=0 |
append operation | |
Static Public Member Functions | |
TAO::traverse_status | perform_skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context) |
TAO::traverse_status | perform_append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest) |
The Marshaling object that provides a common interface to the CDR object for marshaling different IDL data types Provides a set of virtual methods for appending and skipping data over a CDR stream.
Definition at line 77 of file Marshal.h.
|
constructor
Definition at line 8 of file Marshal.inl.
00009 { 00010 } |
|
destructor
Definition at line 30 of file Marshal.cpp.
00031 { 00032 } |
|
|
append entry point, it allocates the right kind of Marshal_Object and invokes skip on it. Definition at line 142 of file Marshal.cpp. Referenced by CORBA::NVList::_tao_encode(), TAO_Marshal_Value::append(), TAO_Marshal_Except::append(), TAO_Marshal_Alias::append(), TAO_Marshal_Array::append(), TAO_Marshal_Sequence::append(), TAO_Marshal_Union::append(), TAO_Marshal_Struct::append(), TAO_Marshal_Principal::append(), TAO_Marshal_TypeCode::append(), TAO_Marshal_Any::append(), and TAO::Unknown_IDL_Type::marshal_value().
00145 { 00146 CORBA::ULong kind = tc->kind (); 00147 00148 switch (kind) 00149 { 00150 default: 00151 case CORBA::tk_fixed: 00152 case CORBA::tk_native: 00153 case CORBA::tk_abstract_interface: 00154 case CORBA::tk_component: 00155 case CORBA::tk_home: 00156 // @@ We don't know how to handle any of them yet. 00157 return TAO::TRAVERSE_STOP; 00158 00159 case CORBA::tk_null: 00160 case CORBA::tk_void: 00161 case CORBA::tk_short: 00162 case CORBA::tk_long: 00163 case CORBA::tk_ushort: 00164 case CORBA::tk_ulong: 00165 case CORBA::tk_float: 00166 case CORBA::tk_double: 00167 case CORBA::tk_boolean: 00168 case CORBA::tk_char: 00169 case CORBA::tk_octet: 00170 case CORBA::tk_longlong: 00171 case CORBA::tk_ulonglong: 00172 case CORBA::tk_longdouble: 00173 case CORBA::tk_wchar: 00174 case CORBA::tk_enum: 00175 { 00176 TAO_Marshal_Primitive marshal; 00177 return marshal.append (tc, src, dest); 00178 } 00179 00180 case CORBA::tk_any: 00181 { 00182 TAO_Marshal_Any marshal; 00183 return marshal.append (tc, src, dest); 00184 } 00185 case CORBA::tk_TypeCode: 00186 { 00187 TAO_Marshal_TypeCode marshal; 00188 return marshal.append (tc, src, dest); 00189 } 00190 case CORBA::tk_Principal: 00191 { 00192 TAO_Marshal_Principal marshal; 00193 return marshal.append (tc, src, dest); 00194 } 00195 case CORBA::tk_objref: 00196 { 00197 TAO_Marshal_ObjRef marshal; 00198 return marshal.append (tc, src, dest); 00199 } 00200 case CORBA::tk_struct: 00201 { 00202 TAO_Marshal_Struct marshal; 00203 return marshal.append (tc, src, dest); 00204 } 00205 case CORBA::tk_union: 00206 { 00207 TAO_Marshal_Union marshal; 00208 return marshal.append (tc, src, dest); 00209 } 00210 case CORBA::tk_string: 00211 { 00212 TAO_Marshal_String marshal; 00213 return marshal.append (tc, src, dest); 00214 } 00215 case CORBA::tk_sequence: 00216 { 00217 TAO_Marshal_Sequence marshal; 00218 return marshal.append (tc, src, dest); 00219 } 00220 case CORBA::tk_array: 00221 { 00222 TAO_Marshal_Array marshal; 00223 return marshal.append (tc, src, dest); 00224 } 00225 case CORBA::tk_alias: 00226 { 00227 TAO_Marshal_Alias marshal; 00228 return marshal.append (tc, src, dest); 00229 } 00230 case CORBA::tk_except: 00231 { 00232 TAO_Marshal_Except marshal; 00233 return marshal.append (tc, src, dest); 00234 } 00235 case CORBA::tk_wstring: 00236 { 00237 TAO_Marshal_WString marshal; 00238 return marshal.append (tc, src, dest); 00239 } 00240 case CORBA::tk_value_box: 00241 case CORBA::tk_value: 00242 case CORBA::tk_event: 00243 { 00244 TAO_Marshal_Value marshal; 00245 return marshal.append (tc, src, dest); 00246 } 00247 } 00248 } |
|
skip entry point, it allocates the right kind of Marshal_Object and invokes skip on it. Definition at line 35 of file Marshal.cpp. Referenced by TAO::Unknown_IDL_Type::_tao_decode(), TAO_Marshal_Value::skip(), TAO_Marshal_Except::skip(), TAO_Marshal_Alias::skip(), TAO_Marshal_Array::skip(), TAO_Marshal_Sequence::skip(), TAO_Marshal_Union::skip(), TAO_Marshal_Struct::skip(), and TAO_Marshal_Any::skip().
00036 { 00037 CORBA::ULong const kind = tc->kind (); 00038 00039 switch (kind) 00040 { 00041 default: 00042 case CORBA::tk_fixed: 00043 case CORBA::tk_native: 00044 case CORBA::tk_abstract_interface: 00045 case CORBA::tk_component: 00046 case CORBA::tk_home: 00047 // @@ We don't know how to handle any of them yet. 00048 return TAO::TRAVERSE_STOP; 00049 00050 case CORBA::tk_null: 00051 case CORBA::tk_void: 00052 case CORBA::tk_short: 00053 case CORBA::tk_long: 00054 case CORBA::tk_ushort: 00055 case CORBA::tk_ulong: 00056 case CORBA::tk_float: 00057 case CORBA::tk_double: 00058 case CORBA::tk_boolean: 00059 case CORBA::tk_char: 00060 case CORBA::tk_octet: 00061 case CORBA::tk_longlong: 00062 case CORBA::tk_ulonglong: 00063 case CORBA::tk_longdouble: 00064 case CORBA::tk_wchar: 00065 case CORBA::tk_enum: 00066 { 00067 TAO_Marshal_Primitive marshal; 00068 return marshal.skip (tc, stream); 00069 } 00070 00071 case CORBA::tk_any: 00072 { 00073 TAO_Marshal_Any marshal; 00074 return marshal.skip (tc, stream); 00075 } 00076 case CORBA::tk_TypeCode: 00077 { 00078 TAO_Marshal_TypeCode marshal; 00079 return marshal.skip (tc, stream); 00080 } 00081 case CORBA::tk_Principal: 00082 { 00083 TAO_Marshal_Principal marshal; 00084 return marshal.skip (tc, stream); 00085 } 00086 case CORBA::tk_objref: 00087 { 00088 TAO_Marshal_ObjRef marshal; 00089 return marshal.skip (tc, stream); 00090 } 00091 case CORBA::tk_struct: 00092 { 00093 TAO_Marshal_Struct marshal; 00094 return marshal.skip (tc, stream); 00095 } 00096 case CORBA::tk_union: 00097 { 00098 TAO_Marshal_Union marshal; 00099 return marshal.skip (tc, stream); 00100 } 00101 case CORBA::tk_string: 00102 { 00103 TAO_Marshal_String marshal; 00104 return marshal.skip (tc, stream); 00105 } 00106 case CORBA::tk_sequence: 00107 { 00108 TAO_Marshal_Sequence marshal; 00109 return marshal.skip (tc, stream); 00110 } 00111 case CORBA::tk_array: 00112 { 00113 TAO_Marshal_Array marshal; 00114 return marshal.skip (tc, stream); 00115 } 00116 case CORBA::tk_alias: 00117 { 00118 TAO_Marshal_Alias marshal; 00119 return marshal.skip (tc, stream); 00120 } 00121 case CORBA::tk_except: 00122 { 00123 TAO_Marshal_Except marshal; 00124 return marshal.skip (tc, stream); 00125 } 00126 case CORBA::tk_wstring: 00127 { 00128 TAO_Marshal_WString marshal; 00129 return marshal.skip (tc, stream); 00130 } 00131 case CORBA::tk_value_box: 00132 case CORBA::tk_value: 00133 case CORBA::tk_event: 00134 { 00135 TAO_Marshal_Value marshal; 00136 return marshal.skip (tc, stream); 00137 } 00138 } 00139 } |
|