cgv
Loading...
Searching...
No Matches
cgv::base::factory Struct Referenceabstract

interface for a factory that allows to create objects derived from cgv::base::base More...

#include <register.h>

Inheritance diagram for cgv::base::factory:
cgv::base::base cgv::data::ref_counted cgv::reflect::self_reflection_tag cgv::base::factory_impl< T > cgv::base::factory_impl_1< T, CA > cgv::base::factory_impl_2< T, CA1, CA2 >

Public Member Functions

 factory (const std::string &_created_type_name, bool _singleton=false, const std::string &_object_options="")
 construct
 
virtual std::string get_object_options () const
 return the options string used for object registration
 
const std::string & get_created_type_name () const
 overload to return the type name of the objects that the factory can create
 
std::string get_property_declarations ()
 support creation of object by setting create property to true
 
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.
 
bool is_singleton_factory () const
 return whether the factory can only generate one instance of the given type
 
base_ptr get_singleton () const
 return pointer to singleton
 
void release_singleton ()
 release the singleton pointer
 
base_ptr create_object ()
 overload to create an object
 
virtual base_ptr create_object_impl ()=0
 overload to create an object
 
- Public Member Functions inherited from cgv::base::base
virtual 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.
 
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, trueget_named ()
 perform downcast to named
 
virtual data::ref_ptr< node, trueget_node ()
 perform downcast to node
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_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 voidget_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 > &param_value_types, const std::vector< const void * > &param_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.
 
voidfind_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
 
- Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count
 

Protected Attributes

std::string created_type_name
 store the type name of the to be created objects
 
bool is_singleton
 store whether the factory can only create one object
 
base_ptr singleton
 pointer to the single object created by the factory in case is_singleton is true
 
std::string object_options
 store the options used for registering newly created objects
 

Additional Inherited Members

- Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
 
- Protected Member Functions inherited from cgv::data::ref_counted
 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
 
- Static Protected Member Functions inherited from cgv::base::base
template<class T >
static data::ref_ptr< T, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Detailed Description

interface for a factory that allows to create objects derived from cgv::base::base

Definition at line 226 of file register.h.

Constructor & Destructor Documentation

◆ factory()

cgv::base::factory::factory ( const std::string &  _created_type_name,
bool  _singleton = false,
const std::string &  _object_options = "" 
)

construct

Definition at line 823 of file register.cxx.

Member Function Documentation

◆ create_object()

base_ptr cgv::base::factory::create_object ( )

overload to create an object

Definition at line 888 of file register.cxx.

References create_object_impl(), is_singleton_factory(), and singleton.

Referenced by set_void().

◆ create_object_impl()

virtual base_ptr cgv::base::factory::create_object_impl ( )
pure virtual

◆ get_created_type_name()

const std::string & cgv::base::factory::get_created_type_name ( ) const

overload to return the type name of the objects that the factory can create

Definition at line 866 of file register.cxx.

References created_type_name.

Referenced by cgv::base::factory_impl< T >::get_type_name(), cgv::base::factory_impl_1< T, CA >::get_type_name(), and cgv::base::factory_impl_2< T, CA1, CA2 >::get_type_name().

◆ get_object_options()

std::string cgv::base::factory::get_object_options ( ) const
virtual

return the options string used for object registration

Definition at line 829 of file register.cxx.

References object_options.

◆ get_property_declarations()

std::string cgv::base::factory::get_property_declarations ( )
virtual

support creation of object by setting create property to true

Reimplemented from cgv::base::base.

Definition at line 835 of file register.cxx.

◆ get_singleton()

base_ptr cgv::base::factory::get_singleton ( ) const

return pointer to singleton

Definition at line 877 of file register.cxx.

References singleton.

◆ get_void()

bool cgv::base::factory::get_void ( const std::string &  property,
const std::string &  value_type,
void value_ptr 
)
virtual

abstract interface for the getter of a dynamic property.

abstract interface for the getter, by default it simply returns false

The default implementation uses the self_reflect() method to find a member with the given property as name. If not found, the get_void method returns false.

Reimplemented from cgv::base::base.

Definition at line 855 of file register.cxx.

◆ is_singleton_factory()

bool cgv::base::factory::is_singleton_factory ( ) const

return whether the factory can only generate one instance of the given type

Definition at line 871 of file register.cxx.

References is_singleton.

Referenced by create_object().

◆ release_singleton()

void cgv::base::factory::release_singleton ( )

release the singleton pointer

Definition at line 882 of file register.cxx.

References cgv::data::ref_ptr< T, is_ref_counted >::clear(), and singleton.

◆ set_void()

bool cgv::base::factory::set_void ( const std::string &  property,
const std::string &  value_type,
const void value_ptr 
)
virtual

abstract interface for the setter of a dynamic property.

abstract interface for the setter, by default it simply returns false

The default implementation uses the self_reflect() method to find a member with the given property as name. If not found, the set_void method returns false.

Reimplemented from cgv::base::base.

Definition at line 841 of file register.cxx.

References create_object(), and cgv::base::register_object().

Member Data Documentation

◆ created_type_name

std::string cgv::base::factory::created_type_name
protected

store the type name of the to be created objects

Definition at line 230 of file register.h.

Referenced by get_created_type_name().

◆ is_singleton

bool cgv::base::factory::is_singleton
protected

store whether the factory can only create one object

Definition at line 232 of file register.h.

Referenced by is_singleton_factory().

◆ object_options

std::string cgv::base::factory::object_options
protected

store the options used for registering newly created objects

Definition at line 236 of file register.h.

Referenced by get_object_options().

◆ singleton

base_ptr cgv::base::factory::singleton
protected

pointer to the single object created by the factory in case is_singleton is true

Definition at line 234 of file register.h.

Referenced by create_object(), get_singleton(), and release_singleton().


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