Graphite  Version 3
An experimental 3D geometry processing program
OGF::DynamicMetaClass Class Reference

A MetaClass that can be created in Lua. More...

#include <OGF/gom/reflection/dynamic_object.h>

Inheritance diagram for OGF::DynamicMetaClass:
OGF::MetaClass OGF::MetaType OGF::MetaInformation OGF::Object OGF::CustomAttributes GEO::Counted

Public Member Functions

 DynamicMetaClass (const std::string &class_name, const std::string &super_class_name, bool is_abstract=false)
 Constructs a new DynamicMetaClass. More...
 
DynamicMetaSlotadd_slot (const std::string &name, Callable *action, const std::string &return_type="void")
 Creates a new slot. More...
 
- Public Member Functions inherited from OGF::MetaClass
 MetaClass (const std::string &class_name, MetaClass *super_class=nullptr, bool is_abstract=false)
 Constructs a new MetaClass. More...
 
 MetaClass (const std::string &class_name, const std::string &super_class_name, bool is_abstract=false)
 Constructs a new MetaClass. More...
 
 ~MetaClass () override
 MetaClass destructor.
 
void pre_delete () override
 Removes all variables that use the meta type system before deleting. More...
 
const std::string & super_class_name () const
 Gets the name of the super class. More...
 
bool is_abstract () const
 Tests if the class is abstract. More...
 
Objectcreate (const ArgList &args)
 Creates an object of this class. More...
 
size_t nb_members (bool super=true) const
 Gets the number of class members. More...
 
MetaMemberith_member (index_t i, bool super=true) const
 Gets a MetaMember by index. More...
 
MetaMemberfind_member (const std::string &member_name, bool super=true) const
 Finds a MetaMember by name. More...
 
size_t nb_signals (bool super=true) const
 Gets the number of signals. More...
 
MetaSignalith_signal (index_t i, bool super=true) const
 Gets a MetaSignal by index. More...
 
size_t nb_slots (bool super=true) const
 Gets the number of slots. More...
 
MetaSlotith_slot (index_t i, bool super=true) const
 Gets a MetaSlot by index. More...
 
size_t nb_properties (bool super=true) const
 Gets the number of properties. More...
 
MetaPropertyith_property (index_t i, bool super=true) const
 Gets a MetaProperty by index. More...
 
size_t nb_constructors () const
 Gets the number of constructors. More...
 
MetaConstructorith_constructor (index_t i) const
 Gets a MetaConstructor by index. More...
 
MetaMethodfind_method (const std::string &method_name, bool super=true) const
 Finds a MetaMethod by name. More...
 
MetaSlotfind_slot (const std::string &slot_name, bool super=true) const
 Finds a MetaSlot by name. More...
 
MetaSignalfind_signal (const std::string &signal_name, bool super=true) const
 Finds a MetaSignal by name. More...
 
MetaPropertyfind_property (const std::string &property_name, bool super=true) const
 Finds a MetaProperty by name. More...
 
virtual MetaClasscreate_subclass (const std::string &name, bool is_abstract=false)
 Creates a new subclass dynamically. More...
 
virtual bool is_subclass_of (const MetaClass *other) const
 Tests whether this MetaClass is a subclass of another MetaClass. More...
 
void set_abstract (bool b)
 Indicate that the class is abstract. More...
 
void add_member (MetaMember *member)
 Adds a new MetaMember to this class. More...
 
void get_members (std::vector< MetaMember * > &result, bool super=true) const
 Gets all the members. More...
 
void get_methods (std::vector< MetaMethod * > &result, bool super=true) const
 Gets all the methods. More...
 
void get_signals (std::vector< MetaSignal * > &result, bool super=true) const
 Gets all the signals. More...
 
void get_slots (std::vector< MetaSlot * > &result, bool super=true) const
 Gets all the slots. More...
 
void get_properties (std::vector< MetaProperty * > &result, bool super=true) const
 Gets all the properties. More...
 
void get_constructors (std::vector< MetaConstructor * > &result) const
 Gets all the constructors. More...
 
bool is_subtype_of (const MetaType *other) const override
 
void get_used_types (std::set< std::string > &used_types, bool super=true) const
 Gets all the types used by this class. More...
 
MetaConstructorbest_constructor (const ArgList &args)
 Gets the best constructors for the specified arguments. More...
 
Factoryfactory () const
 Gets the factory. More...
 
void set_factory (Factory *f)
 Sets the factory. More...
 
void search (const std::string &needle, const std::string &path="") override
 Displays the names of all objects that contain a substring. More...
 
std::string get_doc () const override
 Gets the documentation. More...
 
- Public Member Functions inherited from OGF::MetaType
 MetaType (const std::string &name)
 MetaType constructor. More...
 
 ~MetaType () override
 MetaType destructor.
 
const std::string & name () const
 Gets the C++ name of the type. More...
 
void set_typeid_name (const std::string &typeid_name)
 Sets the typeid name. More...
 
const std::string & typeid_name () const
 Gets the typeid name. More...
 
LifeCyclelife_cycle () const
 Gets the LifeCycle associated with the type. More...
 
void set_life_cycle (LifeCycle *life_cycle)
 Sets the LifeCycle associated with the type. More...
 
Serializerserializer () const
 Gets the serializer associated with the type. More...
 
void set_serializer (Serializer *ser)
 Sets the serializer associated with the type. More...
 
- Public Member Functions inherited from OGF::MetaInformation
bool has_custom_attribute (const std::string &name) const
 Tests whether a given custom attribute exists. More...
 
std::string ith_custom_attribute_name (index_t i) const
 Gets the name of a custom attribute by index. More...
 
std::string ith_custom_attribute_value (index_t i) const
 Gets the value of a custom attribute by index. More...
 
std::string custom_attribute_value (const std::string &name) const
 Gets the value of a new custom attribute. More...
 
void create_custom_attribute (const std::string &name, const std::string &value)
 Creates a new custom attribute. More...
 
void set_custom_attribute (const std::string &name, const std::string &value)
 Sets the value of a new custom attribute. More...
 
- Public Member Functions inherited from OGF::Object
 Object (bool transient=false)
 Object constructor. More...
 
virtual ~Object ()
 Object destructor.
 
virtual MetaClassmeta_class () const
 Gets the meta class. More...
 
virtual void set_meta_class (MetaClass *mclass)
 Sets the meta class. More...
 
unsigned int id () const
 Gets the identifier of this object. More...
 
std::string string_id () const
 Gets the unique string identifier. More...
 
bool has_method (const std::string &method_name) const
 Tests whether a method is defined. More...
 
virtual bool invoke_method (const std::string &method_name, const ArgList &args, Any &ret_val)
 Invokes a method by method name and argument list, and gets the return value. More...
 
bool invoke_method (const std::string &method_name, const ArgList &args)
 Invokes a method by method name and argument list. More...
 
bool invoke_method (const std::string &method_name)
 Invokes a method by method name. More...
 
bool has_property (const std::string &prop_name) const
 Tests whether a property is defined. More...
 
virtual bool get_property (const std::string &prop_name, std::string &prop_value) const
 Gets a property. More...
 
virtual Connectionconnect_signal_to_slot (const std::string &signal_name, Object *to, const std::string &slot_name)
 Connects a signal with a slot of another object. More...
 
virtual void add_connection (Connection *connection)
 Adds a connection to this object. More...
 
virtual void remove_connection (Connection *connection)
 Removes a connection to this object. More...
 
virtual void get_element (index_t i, Any &value) const
 Gets an element by index. More...
 
virtual void set_element (index_t i, const Any &value)
 Sets an element by index. More...
 
bool get_signals_enabled () const
 Tests wheter signals are enabled. More...
 
void set_signals_enabled (bool value)
 Enables or disables signals. More...
 
bool get_slots_enabled () const
 Tests wheter slots are enabled. More...
 
void set_slots_enabled (bool value)
 Enables or disables slots. More...
 
MetaClassget_meta_class () const
 Gets the meta class. More...
 
std::string get_string_id () const
 Gets the unique string identifier. More...
 
virtual Sign compare (const Object *other) const
 Compares this object with another one. More...
 
virtual bool is_a (const MetaType *type) const
 Tests whether this object inherits a given type. More...
 
void disconnect ()
 Removes all connections from signals of this objects. More...
 
void enable_signals ()
 Enables signals.
 
void disable_signals ()
 Disables signals.
 
void enable_slots ()
 Enables slots.
 
void disable_slots ()
 Disables slots.
 
void set_properties (const ArgList &args)
 Sets several properties in a single call. More...
 
virtual bool set_property (const std::string &name, const std::string &value)
 Sets an individual property. More...
 
void help () const
 Displays some help about this object. More...
 
virtual bool set_property (const std::string &name, const Any &value)
 Sets an individual property. More...
 
virtual bool get_property (const std::string &prop_name, Any &prop_value) const
 Gets a property. More...
 
- Public Member Functions inherited from GEO::Counted
void ref () const
 Increments the reference count. More...
 
void unref () const
 Decrements the reference count. More...
 
bool is_shared () const
 Check if the object is shared. More...
 
int nb_refs () const
 Gets the number of references that point to this object. More...
 
- Public Member Functions inherited from OGF::CustomAttributes
size_t nb_custom_attributes () const
 Gets the number of custom attributes. More...
 
std::string ith_custom_attribute_name (index_t i) const
 Gets the name of a custom attribute by index. More...
 
std::string ith_custom_attribute_value (index_t i) const
 Gets the value of a custom attribute by index. More...
 
bool has_custom_attribute (const std::string &name) const
 Tests whether a given custom attribute exists. More...
 
void create_custom_attribute (const std::string &name, const std::string &value)
 Creates a new custom attribute. More...
 
void set_custom_attribute (const std::string &name, const std::string &value)
 Sets the value of a new custom attribute. More...
 
std::string custom_attribute_value (const std::string &name) const
 Gets the value of a new custom attribute. More...
 
void clear_custom_attributes ()
 Clears the custom attributes.
 

Public Attributes

 __pad0__: MetaConstructor* add_constructor(Callable* action=nullptr)
 
- Public Attributes inherited from OGF::MetaClass
 __pad0__: MetaClass* super_class() const
 
- Public Attributes inherited from OGF::MetaType
 __pad0__: virtual bool is_subtype_of(const MetaType* other) const
 
 __pad1__: const std::string& get_name() const { return name()
 
- Public Attributes inherited from OGF::MetaInformation
 __pad0__: size_t nb_custom_attributes() const
 
- Public Attributes inherited from OGF::Object
 __pad0__: virtual index_t get_nb_elements() const
 
 __pad1__: bool equals(const Object* other) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OGF::Object
static Objectid_to_object (unsigned int id)
 Gets an object from a unique object id. More...
 
- Static Public Member Functions inherited from GEO::Counted
static void ref (const Counted *counted)
 Increments the reference count. More...
 
static void unref (const Counted *counted)
 Decrements the reference count. More...
 
- Protected Member Functions inherited from OGF::MetaClass
std::string new_constructor_name () const
 Generates a dummy name for a constructor. More...
 
void append_members (std::vector< MetaMember * > &result, bool super=true) const
 Gets all the members and appends them to a vector. More...
 
void append_methods (std::vector< MetaMethod * > &result, bool super=true) const
 Gets all the methods and appends them to a vector. More...
 
void append_signals (std::vector< MetaSignal * > &result, bool super=true) const
 Gets all the signals and appends them to a vector. More...
 
void append_slots (std::vector< MetaSlot * > &result, bool super=true) const
 Gets all the slots and appends them to a vector. More...
 
void append_properties (std::vector< MetaProperty * > &result, bool super=true) const
 Gets all the properties. More...
 
- Protected Member Functions inherited from OGF::Object
virtual bool emit_signal (const std::string &signal_name, const ArgList &args, bool called_from_slot=false)
 Emits a signal and calls the slots it is connected to. More...
 
- Protected Member Functions inherited from GEO::Counted
 Counted ()
 Creates a reference counted object. More...
 
virtual ~Counted ()
 Destroys a reference counted object. More...
 

Detailed Description

A MetaClass that can be created in Lua.

It is possible to create new GOM classes and objects in Lua.

Definition at line 174 of file dynamic_object.h.

Constructor & Destructor Documentation

◆ DynamicMetaClass()

OGF::DynamicMetaClass::DynamicMetaClass ( const std::string &  class_name,
const std::string &  super_class_name,
bool  is_abstract = false 
)
explicit

Constructs a new DynamicMetaClass.

Parameters
[in]class_namethe C++ class name
[in]super_class_namethe C++ name of the super class
[in]is_abstractindicates whether the class is abstract (e.g. with pure virtual methods) or not. Abstract classes cannot be constructed.

Member Function Documentation

◆ add_slot()

DynamicMetaSlot* OGF::DynamicMetaClass::add_slot ( const std::string &  name,
Callable action,
const std::string &  return_type = "void" 
)

Creates a new slot.

Parameters
[in]namethe name of the slot
[in]actionthe function to be called when the slot is invoked
[in]return_typean optional string with the return type
Returns
the created DynamicMetaSlot

one can create the arguments by calling DynamicMetaSlot::add_arg() on the returned DynamicMetaSlot.


The documentation for this class was generated from the following file: