Mirror reflection library 0.5.13
Defines

Mirror - Reflection macros

Defines

#define MIRRORED_CLASS(FULL_CLASS_NAME)   mirror::MetaClass
 Reflects the class passed as the FULL_CLASS_NAME argument.
#define MIRRORED_ENUM(FULL_ENUM_NAME)   mirror::MetaEnum
 Reflects the class passed as the FULL_ENUM_NAME argument.
#define MIRRORED_FREE_FUNCTIONS(NAMESPACE, NAME)   mirror::MetaOverloadedFunctions
 Reflects a set of functions named NAME defined in the NAMESPACE namespace.
#define MIRRORED_GLOBAL_SCOPE_FUNCTIONS(NAME)   mirror::MetaOverloadedFunctions
 Reflects a set of functions named NAME defined in the global scope.
#define MIRRORED_META_OBJECT(META_OBJECT)   mirror::MetaMetaObject
 Reflects the meta_object passed as the META_OBJECT argument.
#define MIRRORED_NAMESPACE(FULL_NAMESPACE_NAME)   mirror::MetaNamespace
 Reflects the namespace passed as the FULL_NAMESPACE_NAME argument.
#define MIRRORED_GLOBAL_SCOPE()   mirror::MetaNamespace
 Reflects the global scope namespace.
#define MIRRORED_UNSPECIFIED_SCOPE()   mirror::MetaNamespace
 Reflects an unspecified (local) scope.
#define MIRRORED_TYPE(FULL_TYPE_NAME)   mirror::MetaType
 Reflects the type passed as the FULL_TYPE_NAME argument.
#define MIRRORED_TEMPLATE(FULL_TEMPLATE_NAME)   mirror::MetaTypeTemplate
 Reflects the template passed as the FULL_TEMPLATE_NAME argument.
#define MIRRORED_TYPEDEF(NAMESPACE, TYPEDEF)   mirror::MetaTypedef
 Reflects the typedef TYPEDEF defined in the NAMESPACE namespace.
#define MIRRORED_GLOBAL_SCOPE_TYPEDEF(TYPEDEF)   mirror::MetaTypedef
 Reflects the typedef TYPEDEF defined in the global scope.
#define MIRRORED_FREE_VARIABLE(NAMESPACE, VARIABLE)   mirror::MetaFreeVariable
 Reflects the variable VARIABLE defined in the NAMESPACE namespace.
#define MIRRORED_GLOBAL_SCOPE_VARIABLE(VARIABLE)   mirror::MetaFreeVariable
 Reflects the variable VARIABLE defined in the global scope.
#define MIRRORED_SIMPLE_VARIABLE(STORAGE_CLASS, VARIABLE)   mirror::MetaVariable
 Reflects the meta_object passed as the META_OBJECT argument.

Detailed Description

The reflection macros simplify the process of reflection and hide some of the internal details of Mirror's implementation.


Define Documentation

#define MIRRORED_CLASS (   FULL_CLASS_NAME)    mirror::MetaClass

Reflects the class passed as the FULL_CLASS_NAME argument.

This macro expands into a type conforming to the MetaClass concept, which provides meta-data about the given class. The class name passed as the FULL_CLASS_NAME argument should be a fully qualified class name.

See also:
MIRROR_REG_CLASS_BEGIN
MIRROR_REG_CLASS_END
mirror::MetaClass
mirror::reflected
lagoon::reflected_type
lagoon::reflected_class
Examples:
mirror/example/all_member_variables.cpp, mirror/example/class_layout.cpp, mirror/example/typedefd_members.cpp, and mirror/example/various_03.cpp.
#define MIRRORED_ENUM (   FULL_ENUM_NAME)    mirror::MetaEnum

Reflects the class passed as the FULL_ENUM_NAME argument.

This macro expands into a type conforming to the MetaEnum concept, which provides meta-data about the given enum. The enum name passed as the FULL_ENUM_NAME argument should be a fully qualified type name.

See also:
mirror::MetaEnum
mirror::reflected
lagoon::reflected_type
lagoon::reflected_class
Examples:
mirror/example/meta_prog_07.cpp.
#define MIRRORED_FREE_FUNCTIONS (   NAMESPACE,
  NAME 
)    mirror::MetaOverloadedFunctions

Reflects a set of functions named NAME defined in the NAMESPACE namespace.

This macro expands into a type conforming to the MetaOverloadedFunctions concept, which provides meta-data about the given set of overloaded functions.

See also:
MIRRORED_GLOBAL_SCOPE_FUNCTIONS
MIRROR_REG_FREE_OVLD_FUNC_BEGIN
MIRROR_REG_FREE_OVLD_FUNC_END
mirror::MetaOverloadedFunctions
#define MIRRORED_FREE_VARIABLE (   NAMESPACE,
  VARIABLE 
)    mirror::MetaFreeVariable

Reflects the variable VARIABLE defined in the NAMESPACE namespace.

This macro expands into a type conforming to the MetaFreeVariable concept, which provides meta-data about the given variable.

See also:
MIRRORED_GLOBAL_SCOPE_VARIABLE
MIRROR_REG_FREE_VARIABLE
mirror::MetaFreeVariable
#define MIRRORED_GLOBAL_SCOPE ( )    mirror::MetaNamespace

Reflects the global scope namespace.

This macro expands into a type conforming to the MetaNamespace concept, which provides meta-data about the given namespace.

See also:
MIRRORED_NAMESPACE
mirror::MetaNamespace
lagoon::reflected_global_scope
Examples:
mirror/example/meta_prog_01.cpp, mirror/example/meta_prog_02.cpp, mirror/example/meta_prog_03.cpp, mirror/example/meta_prog_04.cpp, mirror/example/meta_prog_05.cpp, mirror/example/meta_prog_11.cpp, mirror/example/meta_prog_12.cpp, mirror/example/meta_prog_13.cpp, and mirror/example/various_01.cpp.
#define MIRRORED_GLOBAL_SCOPE_FUNCTIONS (   NAME)    mirror::MetaOverloadedFunctions

Reflects a set of functions named NAME defined in the global scope.

This macro expands into a type conforming to the MetaOverloadedFunctions concept, which provides meta-data about the given set of overloaded functions.

See also:
MIRRORED_FREE_FUNCTIONS
MIRROR_REG_GLOBAL_SCOPE_OVLD_FUNC_BEGIN
MIRROR_REG_GLOBAL_SCOPE_OVLD_FUNC_END
mirror::MetaOverloadedFunctions
#define MIRRORED_GLOBAL_SCOPE_TYPEDEF (   TYPEDEF)    mirror::MetaTypedef

Reflects the typedef TYPEDEF defined in the global scope.

This macro expands into a type conforming to the MetaTypedef concept, which provides meta-data about the given typedef.

See also:
MIRRORED_TYPEDEF
MIRROR_REG_TYPE
MIRROR_REG_TYPEDEF
mirror::MetaTypedef
#define MIRRORED_GLOBAL_SCOPE_VARIABLE (   VARIABLE)    mirror::MetaFreeVariable

Reflects the variable VARIABLE defined in the global scope.

This macro expands into a type conforming to the MetaFreeVariable concept, which provides meta-data about the given variable.

See also:
MIRRORED_FREE_VARIABLE
MIRROR_REG_FREE_VARIABLE
mirror::MetaFreeVariable
#define MIRRORED_META_OBJECT (   META_OBJECT)    mirror::MetaMetaObject

Reflects the meta_object passed as the META_OBJECT argument.

This macro expands into a type conforming to the MetaMetaObject concept, which provides meta-data about the given Mirror's MetaObject. The type name passed as the META_TYPE argument must by a valid Mirror's meta-object.

See also:
mirror::MetaObject
mirror::MetaMetaObject
lagoon::meta_meta_object
lagoon::meta_object::self
Examples:
mirror/example/meta_prog_03.cpp, mirror/example/various_02.cpp, and mirror/example/various_03.cpp.
#define MIRRORED_NAMESPACE (   FULL_NAMESPACE_NAME)    mirror::MetaNamespace

Reflects the namespace passed as the FULL_NAMESPACE_NAME argument.

This macro expands into a type conforming to the MetaNamespace concept, which provides meta-data about the given namespace. The namespace name passed as the FULL_NAMESPACE_NAME argument must NOT contain the leading :: (double colon).

See also:
MIRRORED_GLOBAL_SCOPE
MIRROR_REG_NAMESPACE
mirror::MetaNamespace
Examples:
mirror/example/meta_prog_01.cpp, mirror/example/meta_prog_02.cpp, mirror/example/meta_prog_03.cpp, mirror/example/meta_prog_04.cpp, mirror/example/meta_prog_05.cpp, mirror/example/meta_prog_06.cpp, and mirror/example/meta_prog_11.cpp.
#define MIRRORED_SIMPLE_VARIABLE (   STORAGE_CLASS,
  VARIABLE 
)    mirror::MetaVariable

Reflects the meta_object passed as the META_OBJECT argument.

This macro expands into a type conforming to the MetaMetaObject concept, which provides meta-data about the given Mirror's MetaObject. The type name passed as the META_TYPE argument must by a valid Mirror's meta-object.

See also:
mirror::Meta Variable
#define MIRRORED_TEMPLATE (   FULL_TEMPLATE_NAME)    mirror::MetaTypeTemplate

Reflects the template passed as the FULL_TEMPLATE_NAME argument.

This macro expands into a type conforming to the MetaTypeTemplate concept, which provides meta-data about the given parameric type. The template name passed as the FULL_TEMPLATE_NAME argument should be a fully qualified type name.

See also:
MIRROR_REG_TYPE_TEMPLATE
MIRROR_REG_CLASS_TEMPLATE
mirror::MetaTypeTemplate
Examples:
mirror/example/typenames_02.cpp.
#define MIRRORED_TYPE (   FULL_TYPE_NAME)    mirror::MetaType

Reflects the type passed as the FULL_TYPE_NAME argument.

This macro expands into a type conforming to the MetaType concept, which provides meta-data about the given type. The type name passed as the FULL_TYPE_NAME argument should be a fully qualified type name.

See also:
MIRROR_REG_TYPE
mirror::MetaType
mirror::reflected
lagoon::reflected_type
Examples:
mirror/example/hello_world.cpp, mirror/example/typenames_01.cpp, mirror/example/typenames_02.cpp, and mirror/example/typenames_03.cpp.
#define MIRRORED_TYPEDEF (   NAMESPACE,
  TYPEDEF 
)    mirror::MetaTypedef

Reflects the typedef TYPEDEF defined in the NAMESPACE namespace.

This macro expands into a type conforming to the MetaTypedef concept, which provides meta-data about the given typedef.

See also:
MIRRORED_TYPEDEF_GLOBAL_SCOPE
MIRROR_REG_TYPE
MIRROR_REG_TYPEDEF
mirror::MetaTypedef
#define MIRRORED_UNSPECIFIED_SCOPE ( )    mirror::MetaNamespace

Reflects an unspecified (local) scope.

This macro expands into a type conforming to the MetaNamespace concept, which provides meta-data about an unspecified scope used in cases where the scope of an MetaScopedObject is not important.

See also:
MIRRORED_NAMESPACE
mirror::MetaNamespace

Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.