3#include "reflection_handler.h"
4#include <cgv/utils/token.h>
21 std::vector<cgv::utils::token> tokens;
24 bool step_if_matches(
const std::string& name);
27 const std::string* target;
28 const void* target_ptr;
30 std::string group_name;
36 bool traverse_matched_groups;
37 std::vector<group_info> traversed_groups;
39 void check_for_index_increment();
40 std::vector<std::string> target_tokens;
43 std::string member_name;
84#include <cgv/config/lib_end.h>
bool found_target() const
return whether target has been found
void reflect_group_end(GroupKind group_kind)
ensure that matched group pointers are found also in case that groups are traversed further and no gr...
find_reflection_handler(const std::string &_target)
construct from textual target description
bool found_valid_target() const
return whether a valid target has been found. The semantic of being valid is defined in derived class...
bool reflect_method_void(const std::string &method_name, method_interface *mi_ptr, abst_reflection_traits *return_traits, const std::vector< abst_reflection_traits * > ¶m_value_traits)
ignore methods
void * get_member_ptr() const
in case a valid target has been found, return a pointer to the member
const std::string & get_member_name() const
in case a valid target has been found, return the name of the member
int reflect_group_begin(GroupKind group_kind, const std::string &group_name, void *group_ptr, abst_reflection_traits *rt, unsigned grp_size)
overload to navigate grouped reflection information
bool reflect_member_void(const std::string &member_name, void *member_ptr, abst_reflection_traits *rt)
check for target during member reflection
virtual void process_member_void(const std::string &member_name, void *member_ptr, abst_reflection_traits *rt, GroupKind group_kind=GK_NO_GROUP, unsigned grp_size=-1)
virtual method that is overloaded by derived classes to handle the target member
abst_reflection_traits * get_reflection_traits() const
in case a valid target has been found, return a point to the reflection traits describing the type of...
the self reflection handler is passed to the virtual self_reflect() method of cgv::base::base.
GroupKind
different support group types
in this namespace reflection of types is implemented
this header is dependency free
abstract interface for type reflection with basic type management and optional string conversion
abstract interface to call a method of a given instance.