cgv
|
reflect to and from binary file More...
#include <binary_io_reflection_handlers.h>
Public Member Functions | |
binary_reflection_handler (const std::string &_content, unsigned _ver) | |
bool | reflect_header () |
void | close () |
![]() | |
io_reflection_handler (const std::string &_content, unsigned _ver) | |
bool | failed () const |
IOReflectionError | get_error_code () const |
bool | reflect_method_void (const std::string &method_name, cgv::reflect::method_interface *mi_ptr, cgv::reflect::abst_reflection_traits *return_traits, const std::vector< cgv::reflect::abst_reflection_traits * > ¶m_value_traits) |
abstract interface to reflect a method, where return and parameter types are specified as strings. | |
![]() | |
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 | |
Protected Attributes | |
FILE * | fp |
![]() | |
unsigned | version |
std::string | file_content |
bool | in_header |
IOReflectionError | last_error |
![]() | |
std::vector< nesting_info > | nesting_info_stack |
stack of nesting_info used during the reflection process | |
Additional Inherited Members | |
![]() | |
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 std::string | get_error_message (IOReflectionError ae) |
![]() | |
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 | |
![]() | |
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 | |
virtual bool | reflect_member_void (const std::string &member_name, void *member_ptr, abst_reflection_traits *rt)=0 |
abstract interface to reflect a member variable, where the member type is specified as a string. | |
reflect to and from binary file
Definition at line 13 of file binary_io_reflection_handlers.h.
cgv::data::binary_reflection_handler::binary_reflection_handler | ( | const std::string & | _content, |
unsigned | _ver | ||
) |
Definition at line 24 of file binary_io_reflection_handlers.cxx.
void cgv::data::binary_reflection_handler::close | ( | ) |
Definition at line 29 of file binary_io_reflection_handlers.cxx.
bool cgv::data::binary_reflection_handler::reflect_header | ( | ) |
Definition at line 9 of file binary_io_reflection_handlers.cxx.
|
protected |
Definition at line 16 of file binary_io_reflection_handlers.h.