00001 #ifndef _IT_BUS_NMTOKENS_H_
00002 #define _IT_BUS_NMTOKENS_H_
00003
00004
00005
00006
00007 #include <it_cal/types.h>
00008 #include <it_bus/exception.h>
00009 #include <it_bus/api_defines.h>
00010 #include <it_bus/simpletype_list_t.h>
00011 #include <it_bus/nmtoken.h>
00012
00013 namespace IT_Reflect
00014 {
00015 class Reflection;
00016 }
00017
00018 namespace IT_Bus
00019 {
00020 class IT_AFC_API NMTokens : public SimpleTypeListT<NMToken>
00021 {
00022 public:
00023 typedef SimpleTypeListT<NMToken>::IT_ReflectionType IT_ReflectionType;
00024
00025 NMTokens(
00026 size_t list_size = 0
00027 ) throw(());
00028
00029 NMTokens(
00030 const NMToken& value,
00031 size_t list_size = 0
00032 ) throw(());
00033
00034 NMTokens(
00035 const NMTokens& copy
00036 ) throw(());
00037
00038 NMTokens(
00039 const IT_Vector<NMToken>& copy
00040 ) throw(());
00041
00042 NMTokens&
00043 operator=(
00044 const NMTokens& rhs
00045 ) throw(());
00046
00047 NMTokens&
00048 operator=(
00049 const IT_Vector<NMToken>& rhs
00050 ) throw(());
00051
00052
00053
00054 virtual AnyType&
00055 copy(
00056 const AnyType& copy
00057 );
00058
00059 virtual const QName&
00060 get_type() const;
00061
00062 virtual IT_Reflect::Reflection*
00063 get_reflection(
00064 ) throw((IT_Reflect::ReflectException));
00065
00066 virtual const IT_Reflect::Reflection*
00067 get_reflection(
00068 ) const throw((IT_Reflect::ReflectException));
00069
00070 virtual void
00071 read(
00072 const QName& name,
00073 ComplexTypeReader& reader
00074 ) throw((IT_Bus::DeserializationException));
00075
00076 virtual void
00077 write(
00078 const QName& name,
00079 ComplexTypeWriter& writer
00080 ) const throw((IT_Bus::SerializationException));
00081
00082
00083
00084 static const QName&
00085 get_static_type();
00086 };
00087
00088 inline bool
00089 operator==(
00090 const NMTokens& val1,
00091 const NMTokens& val2
00092 ) throw(())
00093 {
00094
00095
00096 return
00097 ::operator==(
00098 IT_DYNAMIC_CAST(const IT_Vector<NMToken>&, val1),
00099 IT_DYNAMIC_CAST(const IT_Vector<NMToken>&, val2)
00100 );
00101 }
00102
00103 inline bool
00104 operator!=(
00105 const NMTokens& val1,
00106 const NMTokens& val2
00107 ) throw(())
00108 {
00109 return !operator==(val1, val2);
00110 }
00111 }
00112
00113 #endif