00001 #ifndef _IT_REFLECT_UNION_IMPL_H_
00002 #define _IT_REFLECT_UNION_IMPL_H_
00003
00004
00005
00006
00007 #include <it_dsa/vector.h>
00008 #include <it_bus/reflect/reflection.h>
00009 #include <it_bus/reflect/union.h>
00010
00011 namespace IT_Bus
00012 {
00013 class SimpleTypeUnion;
00014 }
00015
00016 namespace IT_Reflect
00017 {
00021 class IT_AFC_API UnionImpl : public virtual IT_Reflect::Union
00022 {
00023 public:
00027 UnionImpl(
00028 IT_Vector<IT_Bus::QName>& member_names
00029 ) IT_THROW_DECL(());
00030
00034 virtual ~UnionImpl() IT_THROW_DECL(());
00035
00041 virtual size_t
00042 get_member_count() const IT_THROW_DECL(());
00043
00054 virtual const IT_Bus::QName&
00055 get_member_type(
00056 size_t index
00057 ) const IT_THROW_DECL((ReflectException));
00058
00059 private:
00060
00061 UnionImpl(const UnionImpl&);
00062 void operator=(const UnionImpl&);
00063
00064 IT_Vector<IT_Bus::QName>& m_member_names;
00065 };
00066 }
00067
00068
00069 #endif