CppUnit project page CppUnit home page

reflection.h File Reference

#include <cpptl/conststring.h>
#include <cpptl/enumerator.h>
#include <cpptl/sharedptr.h>
#include <cpptl/any.h>
#include <map>
#include <vector>
#include <cpptl/reflection.inl>
#include <cpptl/reflectionimpl10.h>

Include dependency graph for reflection.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  CppTL

Classes

class  CppTL::Attribut
class  CppTL::Method
class  CppTL::Class
class  CppTL::AutoRegisterClassReflection< ClassType >

Defines

#define CPPTL_REFLECT_CLASS_BEGIN(ClassType)
#define CPPTL_REFLECT_METHOD(method)
#define CPPTL_REFLECT_METHOD_WITH_RETURN(method)
#define CPPTL_REFLECT_RENAMED_ATTRIBUT(attribut, name)
#define CPPTL_REFLECT_ATTRIBUT(attribut)   CPPTL_REFLECT_RENAMED_ATTRIBUT( attribut, #attribut )
#define CPPTL_REFLECT_CLASS_END()   }
#define CPPTL_REFLECT_REGISTER_CLASS(ClassType)

Typedefs

typedef std::vector< Any > CppTL::MethodParameters


Define Documentation

#define CPPTL_REFLECT_ATTRIBUT ( attribut   )     CPPTL_REFLECT_RENAMED_ATTRIBUT( attribut, #attribut )

#define CPPTL_REFLECT_CLASS_BEGIN ( ClassType   ) 

Value:

typedef ClassType _Reflection_SelfType;                                  \
   virtual const ::CppTL::Class *getClass() const                           \
   {                                                                        \
      return ::CppTL::Class::findClass( #ClassType );                       \
   }                                                                        \
   static void registerClassReflection()                                    \
   {                                                                        \
      ::CppTL::Class &class_ = ::CppTL::Class::create( #ClassType,          \
                         ::CppTL::typeId( ::CppTL::Type<ClassType>() ) );

 
#define CPPTL_REFLECT_CLASS_END (  )     }

#define CPPTL_REFLECT_METHOD ( method   ) 

Value:

{                                                                           \
         ::CppTL::Impl::Invokable invokable = ::CppTL::Impl::makeInvokable(       \
                                              &_Reflection_SelfType::method );    \
         class_.addMethod( #method, invokable );                                  \
      }

#define CPPTL_REFLECT_METHOD_WITH_RETURN ( method   ) 

Value:

{                                                                           \
         ::CppTL::Impl::Invokable invokable = ::CppTL::Impl::makeInvokableR(      \
                                              &_Reflection_SelfType::method );    \
         class_.addMethod( #method, invokable );                                  \
      }

#define CPPTL_REFLECT_REGISTER_CLASS ( ClassType   ) 

Value:

static ::CppTL::AutoRegisterClassReflection<ClassType>   \
      CPPTL_MAKE_UNIQUE_NAME(cpptlReflectRegisterClass);

#define CPPTL_REFLECT_RENAMED_ATTRIBUT ( attribut,
name   ) 

Value:

{                                                                             \
         ::CppTL::Impl::AttributAccessorPtr accessor = ::CppTL::Impl::makeAccessor( \
                                              &_Reflection_SelfType::attribut );    \
         class_.addAttribut( name, accessor );                                      \
      }


SourceForge Logo hosts this site. Send comments to:
CppUnit Developers