00001 #ifndef _IT_BUS_COMPLEX_TYPE_READER_H_
00002 #define _IT_BUS_COMPLEX_TYPE_READER_H_
00003
00004
00005
00006
00007 #include <it_bus/types.h>
00008 #include <it_bus/deserialization_exception.h>
00009
00010 namespace IT_Bus
00011 {
00012 class AllComplexType;
00013 class AnyHolder;
00014 class Any;
00015 class AnyList;
00016 class AnySimpleType;
00017 class AnyType;
00018 class BinaryOutParam;
00019 class ChoiceComplexType;
00020 class ComplexContentComplexType;
00021 class ElementList;
00022 class TypeList;
00023 class Nillable;
00024 class QName;
00025 class SequenceComplexType;
00026 class SimpleContentComplexType;
00027 class SoapEncArray;
00028 class SimpleTypeList;
00029 class SimpleTypeUnion;
00030 class ComplexTypeWithSubstitution;
00031
00032 template<class T>
00033 class QNameHashMap;
00034
00035 class IT_AFC_API ComplexTypeReader
00036 {
00037 public:
00038
00039 ComplexTypeReader();
00040
00041 virtual ~ComplexTypeReader();
00042
00043 virtual void
00044 read(
00045 const QName& name,
00046 AnyType& data
00047 ) throw((DeserializationException));
00048
00049
00050 virtual void
00051 read(
00052 const QName & name,
00053 Boolean& data
00054 ) throw((DeserializationException)) = 0;
00055
00056 virtual void
00057 read(
00058 const QName & name,
00059 Float& data
00060 ) throw((DeserializationException)) = 0;
00061
00062 virtual void
00063 read(
00064 const QName & name,
00065 Double& data
00066 ) throw((DeserializationException)) = 0;
00067
00068 virtual void
00069 read(
00070 const QName & name,
00071 Int& data
00072 ) throw((DeserializationException)) = 0;
00073
00074 virtual void
00075 read(
00076 const QName & name,
00077 Long& data
00078 ) throw((DeserializationException)) = 0;
00079
00080 virtual void
00081 read(
00082 const QName & name,
00083 Short& data
00084 ) throw((DeserializationException)) = 0;
00085
00086 virtual void
00087 read(
00088 const QName & name,
00089 UInt& data
00090 ) throw((DeserializationException)) = 0;
00091
00092 virtual void
00093 read(
00094 const QName & name,
00095 ULong& data
00096 ) throw((DeserializationException)) = 0;
00097
00098 virtual void
00099 read(
00100 const QName & name,
00101 UShort& data
00102 ) throw((DeserializationException)) = 0;
00103
00104 virtual void
00105 read(
00106 const QName & name,
00107 Byte& data
00108 ) throw((DeserializationException)) = 0;
00109
00110 virtual void
00111 read(
00112 const QName & name,
00113 UByte& data
00114 ) throw((DeserializationException)) = 0;
00115
00116 virtual void
00117 read(
00118 const QName & name,
00119 DateTime& date
00120 ) throw((DeserializationException)) = 0;
00121
00122 virtual void
00123 read(
00124 const QName & name,
00125 String& data
00126 ) throw((DeserializationException)) = 0;
00127
00128 virtual void
00129 read(
00130 const QName & name,
00131 Decimal& data
00132 ) throw((DeserializationException)) = 0;
00133
00134 virtual void
00135 read(
00136 const QName & name,
00137 BinaryOutParam& data
00138 ) throw((DeserializationException)) = 0;
00139
00140 virtual void
00141 read(
00142 const QName & name,
00143 QName & data
00144 ) throw((DeserializationException)) = 0;
00145
00146 virtual void
00147 read_any_simple(
00148 const QName & name,
00149 AnySimpleType & data
00150 ) throw((DeserializationException)) = 0;
00151
00152 virtual void
00153 read_simple_type_list(
00154 const QName & name,
00155 SimpleTypeList & data
00156 ) throw((DeserializationException)) = 0;
00157
00158 virtual void
00159 read_simple_type_union(
00160 const QName & name,
00161 SimpleTypeUnion & data
00162 ) throw((DeserializationException)) = 0;
00163
00164 virtual void
00165 read_sequence(
00166 const QName & name,
00167 SequenceComplexType & data
00168 ) throw((DeserializationException)) = 0;
00169
00170 virtual void
00171 read_all(
00172 const QName & name,
00173 AllComplexType & data
00174 ) throw((DeserializationException)) = 0;
00175
00176 virtual void
00177 read_choice(
00178 const QName & name,
00179 ChoiceComplexType & data
00180 ) throw((DeserializationException)) = 0;
00181
00182 virtual void
00183 read_simple_content(
00184 const QName & name,
00185 SimpleContentComplexType & data
00186 ) throw((DeserializationException)) = 0;
00187
00188 virtual void
00189 read_element_list(
00190 const QName & name,
00191 ElementList& list
00192 ) throw((DeserializationException)) = 0;
00193
00194 virtual void
00195 read_type_list(
00196 const QName & name,
00197 TypeList& list
00198 ) throw((DeserializationException)) = 0;
00199
00200 virtual void
00201 read_soap_enc_array(
00202 const QName & name,
00203 SoapEncArray& data
00204 ) throw((DeserializationException)) = 0;
00205
00206 virtual void
00207 read_complex_content(
00208 const QName & name,
00209 ComplexContentComplexType & data
00210 ) throw((DeserializationException)) = 0;
00211
00212 virtual void
00213 read_nillable(
00214 const QName& name,
00215 Nillable& data
00216 ) throw((DeserializationException)) = 0;
00217
00218 virtual void
00219 read_any_holder(
00220 const QName & name,
00221 AnyHolder& data
00222 ) throw((DeserializationException)) = 0;
00223
00224 virtual void
00225 read_any(
00226 const QName& name,
00227 Any& data
00228 ) throw((DeserializationException)) = 0;
00229
00230 virtual void
00231 read_any_list(
00232 const QName& name,
00233 TypeList& data
00234 ) throw((DeserializationException)) = 0;
00235
00236 virtual QName
00237 get_xsi_type() const = 0;
00238
00239 virtual void
00240 read_substitution(
00241 IT_Bus::UInt id,
00242 ComplexTypeWithSubstitution & data
00243 ) throw((DeserializationException)) = 0;
00244
00245 virtual void
00246 read_attribute_map(
00247 IT_Bus::QNameHashMap<IT_Bus::String> & map
00248 ) throw((DeserializationException)) = 0;
00249 };
00250 }
00251
00252 #endif