cgv
|
implements a dynamic object, that can be composed of independent variables, which are handled as properties of the base_generator and published through the property interface of the base class. More...
#include <base_generator.h>
Public Member Functions | |
~base_generator () | |
during destruction free all memory allocated on heap | |
std::string | get_type_name () const |
overload to return the type name of this object. By default the type interface is queried over get_type. | |
void | add_void (const std::string &name, abst_property_access *apa) |
add a new property | |
template<typename T > | |
void | add (const std::string &property, T &value) |
add a property by deriving property access from type of reference value | |
void | del (const std::string &property) |
remove a property | |
bool | changed (const std::string &property) const |
return whether property has changed | |
std::string | get_property_declarations () |
returns a semicolon separated list of property declarations | |
bool | set_void (const std::string &property, const std::string &value_type, const void *value_ptr) |
abstract interface for the setter of a dynamic property. | |
bool | get_void (const std::string &property, const std::string &value_type, void *value_ptr) |
abstract interface for the getter of a dynamic property. | |
![]() | |
virtual std::string | get_default_options () const |
overload to provide default options for registration | |
std::string | get_name_or_type_name () const |
determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name() | |
virtual void | on_register () |
overload to handle register events that is sent after the instance has been registered | |
virtual void | unregister () |
overload to handle unregistration of instances | |
virtual bool | on_exit_request () |
overload to handle the appication exit request, return true if exiting is allowed and false otherwise | |
virtual void | stream_stats (std::ostream &) |
overload to show the content of this object | |
virtual data::ref_ptr< named, true > | get_named () |
perform downcast to named | |
virtual data::ref_ptr< node, true > | get_node () |
perform downcast to node | |
virtual data::ref_ptr< group, true > | get_group () |
perform downcast to group | |
virtual data::ref_ptr< const named, true > | get_named_const () const |
perform downcast to const named | |
virtual data::ref_ptr< const node, true > | get_node_const () const |
perform downcast to const node | |
virtual data::ref_ptr< const group, true > | get_group_const () const |
perform downcast to const group | |
template<class T > | |
data::ref_ptr< T, true > | cast () |
cast to arbitrary class, but use the casts to named, node and group from the interface | |
template<class T > | |
data::ref_ptr< const T, true > | cast_const () |
const cast to arbitrary class, but use the casts to named, node and group from the interface | |
template<class T > | |
T * | get_interface () |
use dynamic type cast to check for the given interface | |
template<class T > | |
const T * | get_const_interface () const |
use dynamic type cast to check for the given interface | |
virtual void | update () |
this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty. | |
virtual void * | get_user_data () const |
this virtual method allows to pass application specific data for internal purposes | |
virtual bool | self_reflect (cgv::reflect::reflection_handler &) |
used for simple self reflection | |
virtual void | on_set (void *member_ptr) |
this callback is called when the set_void method has changed a member and can be overloaded in derived class | |
virtual bool | call_void (const std::string &method, const std::vector< std::string > ¶m_value_types, const std::vector< const void * > ¶m_value_ptrs, const std::string &result_type="", void *result_value_ptr=0) |
abstract interface to call an action | |
void | set (const std::string &property, const char *value) |
specialization of set method to support const char* as strings | |
template<typename T > | |
void | set (const std::string &property, const T &value) |
set a property of the element to the given value and perform standard conversions if necessary. | |
template<typename T > | |
T | get (const std::string &property) |
query a property of the element and perform standard conversions if necessary. | |
void | multi_set (const std::string &property_assignments, bool report_error=true) |
set several properties | |
bool | is_property (const std::string &property_name, std::string *type_name=0) |
check if the given name specifies a property. | |
void * | find_member_ptr (const std::string &property_name, std::string *type_name=0) |
find a member pointer by name. | |
![]() | |
int | get_ref_count () const |
read access to current count | |
Protected Types | |
typedef std::map< std::string, abst_property_access * > | map_type |
typedef map_type::iterator | iter_type |
typedef map_type::const_iterator | const_iter_type |
Protected Attributes | |
map_type | property_map |
store the properties as map from property name to type and pointer to instance | |
Additional Inherited Members | |
![]() | |
virtual | ~base () |
make destructor virtual and not accessible from outside | |
![]() | |
ref_counted () | |
constructor initializes the count to 0 | |
void | set_ref_count (int c) const |
write access is also const to allow ref counted pointers to const instances | |
![]() | |
template<class T > | |
static data::ref_ptr< T, true > | cast_dynamic (base *b) |
use dynamic cast for upcast to given class | |
implements a dynamic object, that can be composed of independent variables, which are handled as properties of the base_generator and published through the property interface of the base class.
Definition at line 85 of file base_generator.h.
|
protected |
Definition at line 90 of file base_generator.h.
|
protected |
Definition at line 89 of file base_generator.h.
|
protected |
Definition at line 88 of file base_generator.h.
cgv::base::base_generator::~base_generator | ( | ) |
during destruction free all memory allocated on heap
Definition at line 26 of file base_generator.cxx.
References property_map.
add a property by deriving property access from type of reference value
Definition at line 102 of file base_generator.h.
void cgv::base::base_generator::add_void | ( | const std::string & | name, |
abst_property_access * | apa | ||
) |
add a new property
Definition at line 13 of file base_generator.cxx.
References cgv::base::action::end(), and property_map.
return whether property has changed
Definition at line 46 of file base_generator.cxx.
References cgv::base::action::end(), and property_map.
remove a property
Definition at line 36 of file base_generator.cxx.
References cgv::base::action::end(), and property_map.
|
virtual |
returns a semicolon separated list of property declarations
Reimplemented from cgv::base::base.
Definition at line 55 of file base_generator.cxx.
References cgv::base::single_method_action< X, R, T1 >::begin(), cgv::base::action::end(), and property_map.
|
virtual |
overload to return the type name of this object. By default the type interface is queried over get_type.
Reimplemented from cgv::base::base.
Definition at line 7 of file base_generator.cxx.
|
virtual |
abstract interface for the getter of a dynamic property.
Reimplemented from cgv::base::base.
Definition at line 76 of file base_generator.cxx.
References cgv::base::action::end(), and property_map.
|
virtual |
abstract interface for the setter of a dynamic property.
Reimplemented from cgv::base::base.
Definition at line 67 of file base_generator.cxx.
References cgv::base::action::end(), and property_map.
|
protected |
store the properties as map from property name to type and pointer to instance
Definition at line 92 of file base_generator.h.
Referenced by add_void(), changed(), del(), get_property_declarations(), get_void(), set_void(), and ~base_generator().