neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::ecs::i_component Class Referenceabstract

#include <i_component.hpp>

Inheritance diagram for neolib::ecs::i_component:
neolib::ecs::i_component_base neolib::ecs::component_base< Data, i_component > neolib::ecs::component< Data >

Public Member Functions

virtual bool has_entity_record_no_lock (entity_id aEntity) const =0
 
virtual bool has_entity_record (entity_id aEntity) const =0
 
virtual void destroy_entity_record (entity_id aEntity)=0
 
virtual const voidpopulate (entity_id aEntity, const void *aComponentData, std::size_t aComponentDataSize)=0
 
template<typename ComponentData >
const voidpopulate (entity_id aEntity, ComponentData &&aComponentData)
 
- Public Member Functions inherited from neolib::ecs::i_component_base
virtual ~i_component_base ()=default
 
virtual i_ecsecs () const =0
 
virtual const component_idid () const =0
 
virtual neolib::i_lockablemutex () const =0
 
virtual bool is_data_optional () const =0
 
virtual const neolib::i_stringname () const =0
 
virtual uint32_t field_count () const =0
 
virtual component_data_field_type field_type (uint32_t aFieldIndex) const =0
 
virtual neolib::uuid field_type_id (uint32_t aFieldIndex) const =0
 
virtual const neolib::i_stringfield_name (uint32_t aFieldIndex) const =0
 

Detailed Description

Definition at line 66 of file i_component.hpp.

Member Function Documentation

◆ destroy_entity_record()

virtual void neolib::ecs::i_component::destroy_entity_record ( entity_id  aEntity)
pure virtual

◆ has_entity_record()

virtual bool neolib::ecs::i_component::has_entity_record ( entity_id  aEntity) const
pure virtual

◆ has_entity_record_no_lock()

virtual bool neolib::ecs::i_component::has_entity_record_no_lock ( entity_id  aEntity) const
pure virtual

◆ populate() [1/2]

template<typename ComponentData >
const void * neolib::ecs::i_component::populate ( entity_id  aEntity,
ComponentData &&  aComponentData 
)
inline

Definition at line 75 of file i_component.hpp.

◆ populate() [2/2]

virtual const void * neolib::ecs::i_component::populate ( entity_id  aEntity,
const void aComponentData,
std::size_t  aComponentDataSize 
)
pure virtual

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