neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::ecs::component_base< Data, Base > Class Template Reference

#include <component.hpp>

Inheritance diagram for neolib::ecs::component_base< Data, Base >:

Classes

struct  entity_record_not_found
 
struct  invalid_data
 

Public Types

typedef detail::crack_component_data< Data >::data_type data_type
 
typedef data_type::meta data_meta_type
 
typedef detail::crack_component_data< Data >::value_type value_type
 
typedef detail::crack_component_data< Data >::container_type component_data_t
 

Public Member Functions

 component_base (i_ecs &aEcs)
 
 component_base (const self_type &aOther)
 
self_type & operator= (const self_type &aRhs)
 
i_ecsecs () const override
 
const component_idid () const override
 
component_mutex< Data > & mutex () const override
 
bool is_data_optional () const override
 
const neolib::i_stringname () const override
 
uint32_t field_count () const override
 
component_data_field_type field_type (uint32_t aFieldIndex) const override
 
neolib::uuid field_type_id (uint32_t aFieldIndex) const override
 
const neolib::i_stringfield_name (uint32_t aFieldIndex) const override
 
const component_data_tcomponent_data () const
 
component_data_tcomponent_data ()
 
const value_typeoperator[] (typename component_data_t::size_type aIndex) const
 
value_typeoperator[] (typename component_data_t::size_type aIndex)
 

Detailed Description

template<typename Data, typename Base>
class neolib::ecs::component_base< Data, Base >

Definition at line 119 of file component.hpp.

Member Typedef Documentation

◆ component_data_t

template<typename Data , typename Base >
typedef detail::crack_component_data<Data>::container_type neolib::ecs::component_base< Data, Base >::component_data_t

Definition at line 129 of file component.hpp.

◆ data_meta_type

template<typename Data , typename Base >
typedef data_type::meta neolib::ecs::component_base< Data, Base >::data_meta_type

Definition at line 127 of file component.hpp.

◆ data_type

template<typename Data , typename Base >
typedef detail::crack_component_data<Data>::data_type neolib::ecs::component_base< Data, Base >::data_type

Definition at line 126 of file component.hpp.

◆ value_type

template<typename Data , typename Base >
typedef detail::crack_component_data<Data>::value_type neolib::ecs::component_base< Data, Base >::value_type

Definition at line 128 of file component.hpp.

Constructor & Destructor Documentation

◆ component_base() [1/2]

template<typename Data , typename Base >
neolib::ecs::component_base< Data, Base >::component_base ( i_ecs aEcs)
inline

Definition at line 131 of file component.hpp.

◆ component_base() [2/2]

template<typename Data , typename Base >
neolib::ecs::component_base< Data, Base >::component_base ( const self_type &  aOther)
inline

Definition at line 135 of file component.hpp.

Member Function Documentation

◆ component_data() [1/2]

template<typename Data , typename Base >
component_data_t & neolib::ecs::component_base< Data, Base >::component_data ( )
inline

Definition at line 190 of file component.hpp.

◆ component_data() [2/2]

template<typename Data , typename Base >
const component_data_t & neolib::ecs::component_base< Data, Base >::component_data ( ) const
inline

Definition at line 186 of file component.hpp.

◆ ecs()

template<typename Data , typename Base >
i_ecs & neolib::ecs::component_base< Data, Base >::ecs ( ) const
inlineoverride

Definition at line 147 of file component.hpp.

◆ field_count()

template<typename Data , typename Base >
uint32_t neolib::ecs::component_base< Data, Base >::field_count ( ) const
inlineoverride

Definition at line 169 of file component.hpp.

◆ field_name()

template<typename Data , typename Base >
const neolib::i_string & neolib::ecs::component_base< Data, Base >::field_name ( uint32_t  aFieldIndex) const
inlineoverride

Definition at line 181 of file component.hpp.

◆ field_type()

template<typename Data , typename Base >
component_data_field_type neolib::ecs::component_base< Data, Base >::field_type ( uint32_t  aFieldIndex) const
inlineoverride

Definition at line 173 of file component.hpp.

◆ field_type_id()

template<typename Data , typename Base >
neolib::uuid neolib::ecs::component_base< Data, Base >::field_type_id ( uint32_t  aFieldIndex) const
inlineoverride

Definition at line 177 of file component.hpp.

◆ id()

template<typename Data , typename Base >
const component_id & neolib::ecs::component_base< Data, Base >::id ( ) const
inlineoverride

Definition at line 151 of file component.hpp.

◆ is_data_optional()

template<typename Data , typename Base >
bool neolib::ecs::component_base< Data, Base >::is_data_optional ( ) const
inlineoverride

Definition at line 161 of file component.hpp.

◆ mutex()

template<typename Data , typename Base >
component_mutex< Data > & neolib::ecs::component_base< Data, Base >::mutex ( ) const
inlineoverride

Definition at line 156 of file component.hpp.

◆ name()

template<typename Data , typename Base >
const neolib::i_string & neolib::ecs::component_base< Data, Base >::name ( ) const
inlineoverride

Definition at line 165 of file component.hpp.

◆ operator=()

template<typename Data , typename Base >
self_type & neolib::ecs::component_base< Data, Base >::operator= ( const self_type &  aRhs)
inline

Definition at line 141 of file component.hpp.

◆ operator[]() [1/2]

template<typename Data , typename Base >
value_type & neolib::ecs::component_base< Data, Base >::operator[] ( typename component_data_t::size_type  aIndex)
inline

Definition at line 198 of file component.hpp.

◆ operator[]() [2/2]

template<typename Data , typename Base >
const value_type & neolib::ecs::component_base< Data, Base >::operator[] ( typename component_data_t::size_type  aIndex) const
inline

Definition at line 194 of file component.hpp.


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