00001 #ifndef _IT_BUS_COMPLEX_TYPE_H_
00002 #define _IT_BUS_COMPLEX_TYPE_H_
00003
00004
00005
00006
00007 #include <it_bus/serialization_exception.h>
00008 #include <it_bus/deserialization_exception.h>
00009 #include <it_bus/api_defines.h>
00010
00011 namespace IT_Bus
00012 {
00013 class ComplexTypeWriter;
00014 class ComplexTypeReader;
00015
00022 class IT_AFC_API ComplexType
00023 {
00024 protected:
00025
00026 ComplexType();
00027
00028 public:
00029
00030 virtual ~ComplexType();
00031
00032 virtual void
00033 write_attributes(
00034 ComplexTypeWriter & writer
00035 ) const IT_THROW_DECL((SerializationException));
00036
00037 virtual void
00038 read_attributes(
00039 ComplexTypeReader & reader
00040 ) IT_THROW_DECL((DeserializationException));
00041
00042 virtual void
00043 write_all_attributes(
00044 ComplexTypeWriter & writer
00045 ) const IT_THROW_DECL((SerializationException));
00046
00047 virtual void
00048 read_all_attributes(
00049 ComplexTypeReader & reader
00050 ) IT_THROW_DECL((DeserializationException));
00051
00052
00053 protected:
00054
00055 ComplexType &
00056 operator=(
00057 const ComplexType & rhs
00058 );
00059
00060 private:
00061
00062 ComplexType(
00063 const ComplexType & rhs
00064 );
00065 };
00066 }
00067
00068 #endif