it_bus/soap_enc_array.h

00001 #ifndef _IT_BUS_SOAP_ENC_ARRAY_H_
00002 #define _IT_BUS_SOAP_ENC_ARRAY_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/sequence_complex_type.h>
00008 #include <it_bus/element_list.h>
00009 
00010 namespace IT_Bus
00011 {
00012     class QName;
00013     class ComplexTypeWriter;
00014     class ComplexTypeReader;
00015     
00016     class IT_AFC_API ArrayCoordinate
00017     {
00018       public:
00019         ArrayCoordinate() {}
00020         virtual ~ArrayCoordinate();
00021 
00022         virtual const size_t
00023         get_number_dimensions() const = 0;
00024 
00025         virtual const size_t &
00026         operator[] (
00027             size_t idx
00028         ) const = 0;
00029 
00030         virtual size_t &
00031         operator[] (
00032             size_t idx
00033         ) = 0;
00034     };
00035 
00036 
00037     class IT_AFC_API SoapEncArray : public SequenceComplexType
00038     {
00039       public:
00040 
00041         virtual const QName &
00042         get_item_type() const = 0;
00043 
00044         virtual const ArrayCoordinate &
00045         get_extents() const = 0;
00046 
00047         virtual void
00048         set_extents(
00049             const ArrayCoordinate & extents
00050         ) = 0;
00051 
00052         AnyType::Kind
00053         get_kind() const;
00054 
00055         virtual void
00056         write(
00057             const QName& name,
00058             ComplexTypeWriter& writer
00059         ) const throw((SerializationException));
00060         
00061         virtual void
00062         read(
00063             const QName& name,
00064             ComplexTypeReader& reader
00065         ) throw((DeserializationException));
00066 
00067         virtual void
00068         write_position(
00069             ArrayCoordinate & position,
00070             ComplexTypeWriter & os
00071         ) const throw((SerializationException)) = 0;
00072 
00073         virtual void
00074         read_position(
00075             ComplexTypeReader & is,
00076             ArrayCoordinate & position
00077         ) throw((DeserializationException)) = 0;
00078 
00079         virtual void
00080         write_contents(
00081             ComplexTypeWriter & os
00082         ) const throw((SerializationException)) = 0;
00083 
00084         virtual void
00085         read_contents(
00086             ComplexTypeReader & is
00087         ) throw((DeserializationException)) = 0;
00088 
00089         virtual bool
00090         is_empty(
00091             const ArrayCoordinate & position
00092         ) const = 0;
00093 
00094         SoapEncArray &
00095         operator=(
00096             const SoapEncArray & rhs
00097         );
00098 
00099         virtual const IT_Bus::ElementList &
00100         get_element_list() const = 0;
00101 
00102         virtual IT_Bus::ElementList &
00103         get_element_list() = 0;
00104         
00105       protected:
00106         SoapEncArray();
00107         ~SoapEncArray();
00108 
00109       private:
00110         // Not implemented
00111         SoapEncArray(const SoapEncArray & rhs);
00112     };
00113 }
00114 
00115 #endif  

Generated on Tue Mar 20 15:27:44 2007 for Artix by  doxygen 1.5.1-p1