cgv
Loading...
Searching...
No Matches
cgv::base::call_reflection_handler Class Reference
Inheritance diagram for cgv::base::call_reflection_handler:
cgv::reflect::reflection_handler

Public Member Functions

 call_reflection_handler (void *_instance, const std::string &_method, const std::vector< std::string > &_param_value_types, const std::vector< const void * > &_param_value_ptrs, const std::string &_result_type, void *_result_value_ptr)
bool reflect_member_void (const std::string &member_name, void *member_ptr, abst_reflection_traits *rt)
 empty implementation
bool reflect_method_void (const std::string &method_name, method_interface *mi_ptr, abst_reflection_traits *return_traits, const std::vector< abst_reflection_traits * > &param_value_traits)
 abstract interface to reflect a method, where return and parameter types are specified as strings.
Public Member Functions inherited from cgv::reflect::reflection_handler
virtual bool is_creative () const
 give information on whether reflection_handler creates object (defaults to false)
template<typename T>
bool reflect_member (const std::string &member_name, T &member_ref, bool hard_cast=false)
 call this to reflect a member by member name and reference to the member.
template<typename M>
bool reflect_method (const std::string &method_name, M m)
 call this to reflect a method by method name and reference to the member.
template<typename B>
bool reflect_base (B &base_ref)
 reflect a base class with its members
template<typename T, unsigned n>
bool reflect_member (const std::string &member_name, T(&member_ref)[n])
 reflect a member of constant size array type
template<typename T>
bool reflect_member (const std::string &member_name, std::vector< T > &member_ref)
 reflect a member of vector type
template<typename T>
bool reflect_member (const std::string &member_name, T *&member_ref)
 reflect a member of pointer type.
template<typename T, typename S>
bool reflect_array (const std::string &member_name, T *&member_ref, S &size)
 reflect a dynamic array member of vector type
virtual ~reflection_handler ()
 declare virtual destructor

Public Attributes

void * instance
const std::string & method
const std::vector< std::string > & param_value_types
const std::vector< const void * > & param_value_ptrs
const std::string & result_type
void * result_value_ptr
bool found

Additional Inherited Members

Public Types inherited from cgv::reflect::reflection_handler
enum  GroupTraversal { GT_TERMINATE = -3 , GT_SKIP = -2 , GT_COMPLETE = -1 }
 @ basic types with helper functions More...
enum  GroupKind {
  GK_NO_GROUP , GK_BASE_CLASS , GK_STRUCTURE , GK_VECTOR ,
  GK_ARRAY , GK_POINTER
}
 different support group types More...
Static Public Member Functions inherited from cgv::reflect::reflection_handler
static std::string group_traversal_name (GroupTraversal gt)
 return the group traversals as a string
static const char * group_kind_name (GroupKind gk)
 return the group kind as a string
static bool is_array_kind (GroupKind gk)
 check whether a group kind is of array or vector kind
Protected Member Functions inherited from cgv::reflect::reflection_handler
GroupTraversal process_structural_group_begin (GroupKind gk, const std::string &member_name, GroupTraversal gt)
 type independent part of the reflect_group method that starts the group traversal
bool group_end (GroupKind gk)
 updates the nesting info at the end of group and always returns true
template<typename T, typename RT, typename D>
bool self_reflect_member (const std::string &member_name, T &member_ref, const RT &, const D &, bool hard_cast)
 implementation of reflection with internal or external self_reflect function
int reflect_array_begin (GroupKind group_kind, const std::string &group_name, void *group_ptr, abst_reflection_traits *rt, unsigned grp_size)
 type independent functionality of array reflection
virtual int reflect_group_begin (GroupKind group_kind, const std::string &group_name, void *group_ptr, abst_reflection_traits *rt, unsigned grp_size=-1)
 abstract interface to start reflection of a group of members.
virtual void reflect_group_end (GroupKind group_kind)
 abstract interface to terminate reflection of a group of members
Protected Attributes inherited from cgv::reflect::reflection_handler
std::vector< nesting_info > nesting_info_stack
 stack of nesting_info used during the reflection process

Detailed Description

Definition at line 121 of file base.cxx.

Constructor & Destructor Documentation

◆ call_reflection_handler()

cgv::base::call_reflection_handler::call_reflection_handler ( void * _instance,
const std::string & _method,
const std::vector< std::string > & _param_value_types,
const std::vector< const void * > & _param_value_ptrs,
const std::string & _result_type,
void * _result_value_ptr )
inline

Definition at line 131 of file base.cxx.

Member Function Documentation

◆ reflect_member_void()

bool cgv::base::call_reflection_handler::reflect_member_void ( const std::string & member_name,
void * member_ptr,
abst_reflection_traits * rt )
inlinevirtual

empty implementation

Implements cgv::reflect::reflection_handler.

Definition at line 145 of file base.cxx.

◆ reflect_method_void()

bool cgv::base::call_reflection_handler::reflect_method_void ( const std::string & method_name,
method_interface * mi_ptr,
abst_reflection_traits * return_traits,
const std::vector< abst_reflection_traits * > & param_value_traits )
inlinevirtual

abstract interface to reflect a method, where return and parameter types are specified as strings.

Returns whether to continue the reflection.

Implements cgv::reflect::reflection_handler.

Definition at line 150 of file base.cxx.

Member Data Documentation

◆ found

bool cgv::base::call_reflection_handler::found

Definition at line 130 of file base.cxx.

◆ instance

void* cgv::base::call_reflection_handler::instance

Definition at line 124 of file base.cxx.

◆ method

const std::string& cgv::base::call_reflection_handler::method

Definition at line 125 of file base.cxx.

◆ param_value_ptrs

const std::vector<const void*>& cgv::base::call_reflection_handler::param_value_ptrs

Definition at line 127 of file base.cxx.

◆ param_value_types

const std::vector<std::string>& cgv::base::call_reflection_handler::param_value_types

Definition at line 126 of file base.cxx.

◆ result_type

const std::string& cgv::base::call_reflection_handler::result_type

Definition at line 128 of file base.cxx.

◆ result_value_ptr

void* cgv::base::call_reflection_handler::result_value_ptr

Definition at line 129 of file base.cxx.


The documentation for this class was generated from the following file: