siplasplas
A library for C++ reflection and introspection
cpp::dynamic_reflection::Function Class Reference

Stires dynamic reflection information of a function. More...

#include <siplasplas/reflection/dynamic/function.hpp>

Inheritance diagram for cpp::dynamic_reflection::Function:
cpp::dynamic_reflection::Entity

Public Member Functions

template<typename... Args>
auto operator() (Args &&...args) const
 Invokes the function with the given arguments.
 
template<typename... Args>
auto operator() (Args &&...args)
 Invokes the function with the given arguments.
 
const cpp::typeerasure::Function32getFunction () const
 Returns a pointer to the function.
 
- Public Member Functions inherited from cpp::dynamic_reflection::Entity
Entityparent ()
 Returns a reference to the parent entity The behavior is undefined if the entity has no parent entity (See orphan())
 
Runtimeruntime ()
 Returns a reference to the runtime where the entity is registered. More...
 
const SourceInfo & sourceInfo () const
 Returns source information about the entity.
 
const std::string & name () const
 Returns the name of the entity.
 
const std::string & fullName () const
 Returns the full qualifies name of the entity.
 
const SourceInfo::Kindkind () const
 Returns the kind (Namespace, class, enum, member function, etc) of the entity.
 
bool detached () const
 Checks whether the entity is not registered (attached) into a dynamic reflection runtime. More...
 
bool orphan () const
 Checks if the entity has no parent entity. More...
 
void attach (Runtime &runtime)
 Attaches the entity to a given runtime. More...
 
void attach (const std::weak_ptr< Entity > &parent)
 Attaches the entity to the runtime of a given entity and links that enity as parent. More...
 
void addChild (const std::shared_ptr< Entity > &entity)
 Links the given entity as child of the entity. More...
 
bool isChild (const std::shared_ptr< Entity > &entity) const
 Checks if the given entity is a child entity of this entity. More...
 
bool isChild (const Entity &entity) const
 Checks if the given entity is a child entity of this entity. More...
 
bool isChildByName (const std::string &name) const
 Checks if the entity has a child entity with the given name. More...
 
bool isChildByFullName (const std::string &fullName) const
 Checks if the entity has a child entity with the given name. More...
 
EntitygetChildByFullName (const std::string &fullName)
 Returns a child entity given its full name. More...
 
EntitygetChildByName (const std::string &name)
 Returns a child entity given its name. More...
 
std::vector< std::string > getChildrenNamesByKind (const SourceInfo::Kind &kind)
 Returns the names of the child entities with a given kind. More...
 
std::shared_ptr< Entitypointer ()
 Returns the shared pointer holding the entity object.
 

Static Public Member Functions

static std::shared_ptr< Functioncreate (const SourceInfo &sourceInfo, const cpp::typeerasure::Function32 &function)
 Instances a function entity given its source information and a function pointer. More...
 
static FunctionfromEntity (const std::shared_ptr< Entity > &entity)
 Returns a reference to a function entity from a pointer to an entity. More...
 

Additional Inherited Members

- Protected Member Functions inherited from cpp::dynamic_reflection::Entity
 Entity (const SourceInfo &sourceInfo)
 

Detailed Description

Stires dynamic reflection information of a function.

Examples:
examples/reflection/dynamic/reflection.cpp.

Member Function Documentation

static std::shared_ptr<Function> cpp::dynamic_reflection::Function::create ( const SourceInfo &  sourceInfo,
const cpp::typeerasure::Function32 function 
)
static

Instances a function entity given its source information and a function pointer.

Parameters
sourceInfoField source information
functionFunction pointer. Must be non-empty.
Returns
A shared pointer holding the function entity
Examples:
examples/reflection/dynamic/reflection.cpp.
static Function& cpp::dynamic_reflection::Function::fromEntity ( const std::shared_ptr< Entity > &  entity)
static

Returns a reference to a function entity from a pointer to an entity.

This function performs an entity cast from a generic entity pointer to a function entity. The behavior is undefined if the entity is not a function (See Entity::kind())

Parameters
entityA shared pointer to an entity
Returns
A reference to a field entity

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