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

Stores dynamic reflection information of a namespace. More...

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

Inheritance diagram for cpp::dynamic_reflection::Namespace:
cpp::dynamic_reflection::Entity

Public Member Functions

Namespacenamespace_ (const std::string &name)
 Returns dynamic reflection information of a nested namespace. More...
 
Classclass_ (const std::string &name)
 Returns reflection information of a member class type. More...
 
Enumenum_ (const std::string &name)
 Returns reflection information of a member enumeration type. More...
 
- 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< Namespacecreate (const SourceInfo &sourceInfo)
 Creates a namespace entity given its source information. More...
 
static NamespacefromEntity (const std::shared_ptr< Entity > &entity)
 Returns a reference to a namespace 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

Stores dynamic reflection information of a namespace.

Member Function Documentation

Class& cpp::dynamic_reflection::Namespace::class_ ( const std::string &  name)

Returns reflection information of a member class type.

The behavior is undefined if the namespace has no nested class registered with that name

Parameters
nameName of the member class
Returns
A reference to the class entity with the class reflection information
Examples:
examples/reflection/dynamic/plugin.cpp, and examples/reflection/dynamic/reflection.cpp.
static std::shared_ptr<Namespace> cpp::dynamic_reflection::Namespace::create ( const SourceInfo &  sourceInfo)
static

Creates a namespace entity given its source information.

Parameters
sourceInfoNmaespace source information
Returns
A shared pointer holding the namespace entity
Enum& cpp::dynamic_reflection::Namespace::enum_ ( const std::string &  name)

Returns reflection information of a member enumeration type.

The behavior is undefined if the namespace has no member enumeration registered with that name

Parameters
nameName of the member enumeration type
Returns
A reference to the enumeration entity with the enum reflection information
static Namespace& cpp::dynamic_reflection::Namespace::fromEntity ( const std::shared_ptr< Entity > &  entity)
static

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

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

Parameters
entityA shared pointer to an entity
Returns
A reference to a field entity
Namespace& cpp::dynamic_reflection::Namespace::namespace_ ( const std::string &  name)

Returns dynamic reflection information of a nested namespace.

Parameters
nameNested namespace name
Returns
Reference to namespace entity with the information

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