it_bus/reflect/complex_content_impl_t.h

00001 #ifndef _IT_REFLECT_COMPLEX_CONTENT_IMPL_H_
00002 #define _IT_REFLECT_COMPLEX_CONTENT_IMPL_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 
00007 #include <it_bus/reflect/traits.h>
00008 #include <it_bus/reflect/reflection_impl_t.h>
00009 #include <it_bus/reflect/complex_type_impl.h>
00010 #include <it_bus/reflect/complex_content.h>
00011 
00012 namespace IT_Reflect
00013 {
00017     template <class T>
00018     class ComplexContentImplT :
00019         public ReflectionImplT<T>,
00020         public ComplexContent
00021     {
00022       public:
00026         ComplexContentImplT(
00027             const T* data
00028         ) IT_THROW_DECL(());
00029         
00030         virtual const IT_Bus::QName&
00031         get_type_name() const IT_THROW_DECL(());
00032 
00033         virtual IT_Bus::AnyType::Kind
00034         get_type_kind() const IT_THROW_DECL(());
00035     };
00036 
00037 
00038     template <class T>
00039     ComplexContentImplT<T>::ComplexContentImplT(
00040         const T* data
00041     ) IT_THROW_DECL(())
00042         :
00043         ReflectionImplT<T>(data)
00044     {
00045         // Complete.
00046     }
00047 
00048     template <class T>
00049     const IT_Bus::QName&
00050     ComplexContentImplT<T>::get_type_name(
00051     ) const IT_THROW_DECL(())
00052     {
00053         return this->m_data->T::get_type();
00054     }
00055 
00056     template <class T>
00057     IT_Bus::AnyType::Kind
00058     ComplexContentImplT<T>::get_type_kind(
00059     ) const IT_THROW_DECL(())
00060     {
00061         return this->m_data->T::get_kind();
00062     }
00063 }
00064 
00065 #endif  

Generated on Thu Sep 7 11:39:00 2006 for Artix by  doxygen 1.4.7