00001 #ifndef _IT_BUS_COMPLEX_TYPE_WITH_SUBSTITUTION_ 00002 #define _IT_BUS_COMPLEX_TYPE_WITH_SUBSTITUTION_ 00003 00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved. 00005 // 00006 00007 #include <it_bus/any_type.h> 00008 #include <it_bus/complex_type.h> 00009 00010 namespace IT_Bus 00011 { 00012 class QName; 00013 class ComplexTypeReader; 00014 00019 class ComplexTypeWithSubstitution : 00020 public virtual ComplexType, 00021 public virtual AnyType 00022 { 00023 public: 00027 virtual void 00028 read_substitutable_member( 00029 IT_Bus::UInt id, 00030 const IT_Bus::QName & discriminant, 00031 IT_Bus::ComplexTypeReader & reader 00032 ) throw((IT_Bus::DeserializationException)) = 0; 00033 00034 protected: 00038 ComplexTypeWithSubstitution() {} 00039 }; 00040 } 00041 00042 #endif