00001 #ifndef _IT_BUS_COMPLEX_TYPE_WRITER_H_
00002 #define _IT_BUS_COMPLEX_TYPE_WRITER_H_
00003
00004
00005
00006
00007 #include <it_bus/types.h>
00008 #include <it_bus/serialization_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 BinaryInParam;
00019 class BinaryOutParam;
00020 class ChoiceComplexType;
00021 class ComplexContentComplexType;
00022 class ElementList;
00023 class TypeList;
00024 class Nillable;
00025 class QName;
00026 class SequenceComplexType;
00027 class SimpleContentComplexType;
00028 class SoapEncArray;
00029 class SimpleTypeList;
00030 class SimpleTypeUnion;
00031
00032 template<class T>
00033 class QNameHashMap;
00034
00035 class IT_AFC_API ComplexTypeWriter
00036 {
00037 public:
00038
00039 ComplexTypeWriter();
00040
00041 virtual ~ComplexTypeWriter();
00042
00043 virtual void write(
00044 const QName& name,
00045 const AnyType& data
00046 ) throw((SerializationException));
00047
00048 virtual void write(
00049 const QName & name,
00050 const String& sz
00051 ) throw((SerializationException)) = 0;
00052
00053 virtual void write(
00054 const QName & name,
00055 const Boolean bFlag
00056 ) throw((SerializationException)) = 0;
00057
00058 virtual void write(
00059 const QName & name,
00060 const Float number
00061 )throw((SerializationException)) = 0;
00062
00063 virtual void write(
00064 const QName & name,
00065 const Double number
00066 ) throw((SerializationException)) = 0;
00067
00068 virtual void write(
00069 const QName & name,
00070 const Int number
00071 ) throw((SerializationException)) = 0;
00072
00073 virtual void write(
00074 const QName & name,
00075 const Long number
00076 ) throw((SerializationException)) = 0;
00077
00078 virtual void write(
00079 const QName & name,
00080 const Short number
00081 ) throw((SerializationException)) = 0;
00082
00083 virtual void write(
00084 const QName & name,
00085 const UInt number
00086 ) throw((SerializationException)) = 0;
00087
00088 virtual void write(
00089 const QName & name,
00090 const ULong number
00091 ) throw((SerializationException)) = 0;
00092
00093 virtual void write(
00094 const QName & name,
00095 const UShort number
00096 ) throw((SerializationException)) = 0;
00097
00098 virtual void write(
00099 const QName & name,
00100 const Byte number
00101 ) throw((SerializationException)) = 0;
00102
00103 virtual void write(
00104 const QName & name,
00105 const UByte number
00106 ) throw((SerializationException)) = 0;
00107
00108 virtual void
00109 write(
00110 const QName & name,
00111 const DateTime & time
00112 ) throw((SerializationException)) = 0;
00113
00114 virtual void
00115 write(
00116 const QName & name,
00117 const Decimal & fixed
00118 ) throw((SerializationException)) = 0;
00119
00120 virtual void
00121 write(
00122 const QName & name,
00123 const BinaryInParam& data
00124 ) throw((SerializationException)) = 0;
00125
00126 virtual void
00127 write(
00128 const QName & name,
00129 const QName & data
00130 ) throw((SerializationException)) = 0;
00131
00132 virtual void
00133 write_any_simple(
00134 const QName & name,
00135 const AnySimpleType& data
00136 ) throw((SerializationException)) = 0;
00137
00138 virtual void
00139 write_simple_type_list(
00140 const QName & name,
00141 const SimpleTypeList& data
00142 ) throw((SerializationException)) = 0;
00143
00144 virtual void
00145 write_simple_type_union(
00146 const QName & name,
00147 const SimpleTypeUnion& data
00148 ) throw((SerializationException)) = 0;
00149
00150 virtual void
00151 write_sequence(
00152 const QName & name,
00153 const SequenceComplexType & data
00154 ) throw((SerializationException)) = 0;
00155
00156 virtual void
00157 write_all(
00158 const QName & name,
00159 const AllComplexType & data
00160 ) throw((SerializationException)) = 0;
00161
00162 virtual void
00163 write_choice(
00164 const QName & name,
00165 const ChoiceComplexType & data
00166 ) throw((SerializationException)) = 0;
00167
00168 virtual void
00169 write_simple_content(
00170 const QName & name,
00171 const SimpleContentComplexType & data
00172 ) throw((SerializationException)) = 0;
00173
00174 virtual void
00175 write_element_list(
00176 const QName & name,
00177 const ElementList& list
00178 ) throw((SerializationException)) = 0;
00179
00180 virtual void
00181 write_type_list(
00182 const QName & name,
00183 const TypeList& list
00184 ) throw((SerializationException)) = 0;
00185
00186 virtual void
00187 write_soap_enc_array(
00188 const QName & name,
00189 const SoapEncArray& list
00190 ) throw((SerializationException)) = 0;
00191
00192 virtual void
00193 write_complex_content(
00194 const QName & name,
00195 const ComplexContentComplexType& data
00196 ) throw((SerializationException)) = 0;
00197
00198 virtual void
00199 write_nillable(
00200 const QName& name,
00201 const Nillable& nillable
00202 ) throw((SerializationException)) = 0;
00203
00204 virtual void
00205 write_any_holder(
00206 const QName& name,
00207 const AnyHolder& nillable
00208 ) throw((SerializationException)) = 0;
00209
00210 virtual void
00211 write_any(
00212 const QName& name,
00213 const Any& any
00214 ) throw((SerializationException)) = 0;
00215
00216 virtual void
00217 write_any_list(
00218 const QName& name,
00219 const TypeList& any
00220 ) throw((SerializationException)) = 0;
00221
00222 virtual void
00223 write_attribute_map(
00224 const IT_Bus::QNameHashMap<IT_Bus::String> & map
00225 ) throw((SerializationException)) = 0;
00226
00227 virtual bool
00228 is_derived_write() const = 0;
00229 };
00230 }
00231
00232 #endif