73 virtual const void*
populate(
entity_id aEntity,
const void* aComponentData, std::size_t aComponentDataSize) = 0;
74 template <
typename ComponentData>
84 virtual const void*
populate(
const std::string& aName,
const void* aComponentData, std::size_t aComponentDataSize) = 0;
85 template <
typename ComponentData>
92 template <
typename ComponentData>
95 template <
typename ComponentData>
96 class shared_component;
virtual const neolib::i_string & name() const =0
virtual const neolib::i_string & field_name(uint32_t aFieldIndex) const =0
virtual bool is_data_optional() const =0
virtual const component_id & id() const =0
virtual neolib::i_lockable & mutex() const =0
virtual neolib::uuid field_type_id(uint32_t aFieldIndex) const =0
virtual ~i_component_base()=default
virtual i_ecs & ecs() const =0
virtual component_data_field_type field_type(uint32_t aFieldIndex) const =0
virtual uint32_t field_count() const =0
virtual const void * populate(entity_id aEntity, const void *aComponentData, std::size_t aComponentDataSize)=0
virtual bool has_entity_record(entity_id aEntity) const =0
virtual void destroy_entity_record(entity_id aEntity)=0
virtual bool has_entity_record_no_lock(entity_id aEntity) const =0
const void * populate(entity_id aEntity, ComponentData &&aComponentData)
const void * populate(const std::string &aName, ComponentData &&aComponentData)
virtual const void * populate(const std::string &aName, const void *aComponentData, std::size_t aComponentDataSize)=0
component_data_field_type