cgv
Loading...
Searching...
No Matches
cgv::reflect::abst_reflection_traits Struct Referenceabstract

abstract interface for type reflection with basic type management and optional string conversion More...

#include <reflection_traits.h>

Inheritance diagram for cgv::reflect::abst_reflection_traits:
cgv::reflect::reflection_traits_impl< T, abst_reflection_traits > cgv::reflect::abst_enum_reflection_traits cgv::reflect::reflection_traits_string_impl< has_str, T, abst_reflection_traits > cgv::reflect::reflection_traits_string_impl< true, T, abst_reflection_traits > cgv::reflect::reflection_traits_impl< T, abst_enum_reflection_traits > cgv::reflect::reflection_traits< T, RTK_SELF_REFLECT, false > cgv::reflect::reflection_traits< T, RTK_STD_TYPE, true > cgv::reflect::reflection_traits< T, RTK_EXTERNAL_SELF_REFLECT, false > cgv::reflect::reflection_traits< T, RTK_EXTERNAL_SELF_REFLECT > cgv::reflect::reflection_traits< T, KIND, has_str > cgv::reflect::enum_reflection_traits< T > cgv::reflect::extern_reflection_traits_impl< D, reflection_traits< T, RTK_EXTERNAL_SELF_REFLECT, false > > cgv::reflect::extern_reflection_traits_impl< D, reflection_traits< T, RTK_EXTERNAL_SELF_REFLECT > > cgv::reflect::extern_reflection_traits< T, D > cgv::reflect::extern_string_reflection_traits< T, D >

Public Member Functions

virtual ~abst_reflection_traits ()
 provide virtual destructor to allow generation of copies
virtual abst_reflection_traits * clone ()=0
 clone function
basic type interface
virtual unsigned size () const =0
 return the size of the type
virtual void * new_instance () const =0
 construct an instance on the heap with the new operator
virtual void delete_instance (void *) const =0
 delete an instance with the delete operator
virtual void * new_instances (unsigned n) const =0
 construct n instances on the heap with the new operator
virtual void delete_instances (void *) const =0
 delete instances with the delete [] operator
virtual cgv::type::info::TypeId get_type_id () const =0
 return the type id
virtual const char * get_type_name () const =0
 return the type name

self reflection through external implementation

static const bool has_external = false
 compile information about external implementation
virtual bool has_external_implementation () const
 whether type can be converted to string, defaults to false
virtual bool external_implementation (reflection_handler &rh, void *member_ptr)
 call the external implementation

self reflection through string conversions

static const bool has_string = false
 compile information about string conversions
virtual bool has_string_conversions () const
 whether type can be converted to string, defaults to false
virtual bool set_from_string (void *instance_ptr, const std::string &str_val)
 convert a given string value to the reflected type and store in the instance pointer
virtual void get_to_string (const void *instance_ptr, std::string &str_val)
 convert given instance into a string value

additional enum interface

static const bool has_enum = false
 compile information about enum interface
virtual bool is_enum_type () const
 return whether type is an enum type - this is independent of whether enum interface is implemented
virtual bool has_enum_interface () const
 return whether the traits class implements the enum interface
virtual unsigned get_nr_enum_items () const
 return the number of enum items
virtual std::string get_enum_name (unsigned i) const
 return the name of the i-th enum item
virtual int get_enum_value (unsigned i) const
 return the value of the i-th enum item

Detailed Description

abstract interface for type reflection with basic type management and optional string conversion

Definition at line 23 of file reflection_traits.h.

Constructor & Destructor Documentation

◆ ~abst_reflection_traits()

cgv::reflect::abst_reflection_traits::~abst_reflection_traits ( )
virtual

provide virtual destructor to allow generation of copies

Definition at line 7 of file reflection_traits.cxx.

Member Function Documentation

◆ clone()

◆ delete_instance()

virtual void cgv::reflect::abst_reflection_traits::delete_instance ( void * ) const
pure virtual

◆ delete_instances()

virtual void cgv::reflect::abst_reflection_traits::delete_instances ( void * ) const
pure virtual

◆ external_implementation()

bool cgv::reflect::abst_reflection_traits::external_implementation ( reflection_handler & rh,
void * member_ptr )
virtual

◆ get_enum_name()

std::string cgv::reflect::abst_reflection_traits::get_enum_name ( unsigned i) const
virtual

return the name of the i-th enum item

Reimplemented in cgv::reflect::abst_enum_reflection_traits.

Definition at line 51 of file reflection_traits.cxx.

◆ get_enum_value()

int cgv::reflect::abst_reflection_traits::get_enum_value ( unsigned i) const
virtual

return the value of the i-th enum item

Reimplemented in cgv::reflect::abst_enum_reflection_traits.

Definition at line 56 of file reflection_traits.cxx.

◆ get_nr_enum_items()

unsigned cgv::reflect::abst_reflection_traits::get_nr_enum_items ( ) const
virtual

return the number of enum items

Reimplemented in cgv::reflect::abst_enum_reflection_traits.

Definition at line 46 of file reflection_traits.cxx.

◆ get_to_string()

void cgv::reflect::abst_reflection_traits::get_to_string ( const void * instance_ptr,
std::string & str_val )
virtual

◆ get_type_id()

◆ get_type_name()

◆ has_enum_interface()

bool cgv::reflect::abst_reflection_traits::has_enum_interface ( ) const
virtual

return whether the traits class implements the enum interface

Reimplemented in cgv::reflect::abst_enum_reflection_traits.

Definition at line 41 of file reflection_traits.cxx.

◆ has_external_implementation()

bool cgv::reflect::abst_reflection_traits::has_external_implementation ( ) const
virtual

◆ has_string_conversions()

bool cgv::reflect::abst_reflection_traits::has_string_conversions ( ) const
virtual

◆ is_enum_type()

bool cgv::reflect::abst_reflection_traits::is_enum_type ( ) const
virtual

return whether type is an enum type - this is independent of whether enum interface is implemented

Reimplemented in cgv::reflect::reflection_traits_impl< T, abst_enum_reflection_traits >, and cgv::reflect::reflection_traits_impl< T, abst_reflection_traits >.

Definition at line 35 of file reflection_traits.cxx.

◆ new_instance()

virtual void * cgv::reflect::abst_reflection_traits::new_instance ( ) const
pure virtual

◆ new_instances()

virtual void * cgv::reflect::abst_reflection_traits::new_instances ( unsigned n) const
pure virtual

◆ set_from_string()

bool cgv::reflect::abst_reflection_traits::set_from_string ( void * instance_ptr,
const std::string & str_val )
virtual

convert a given string value to the reflected type and store in the instance pointer

Reimplemented in cgv::reflect::abst_enum_reflection_traits.

Definition at line 26 of file reflection_traits.cxx.

Referenced by cgv::data::ascii_read_reflection_handler::reflect_member_void().

◆ size()

Member Data Documentation

◆ has_enum

const bool cgv::reflect::abst_reflection_traits::has_enum = false
static

compile information about enum interface

Definition at line 74 of file reflection_traits.h.

◆ has_external

const bool cgv::reflect::abst_reflection_traits::has_external = false
static

compile information about external implementation

Definition at line 51 of file reflection_traits.h.

◆ has_string

const bool cgv::reflect::abst_reflection_traits::has_string = false
static

compile information about string conversions

Definition at line 61 of file reflection_traits.h.


The documentation for this struct was generated from the following files: