1#ifndef LIBS_LOGIC_CLOGICSCOMPONENT_HPP_
2#define LIBS_LOGIC_CLOGICSCOMPONENT_HPP_
10#include <bits/stdint-uintn.h>
25 typedef std::map<AbstractCanvasItem::TId, std::shared_ptr<CLogicsConnectionPoint>>
TMapIdConnPoint;
39 const std::string &name);
50 std::vector<std::shared_ptr<AbstractCanvasItem>>
getLinkedItems()
override;
77 [[nodiscard]] std::set<std::shared_ptr<CLogicsConnectionPoint>>
getConnectionPoints()
const;
uint32_t TId
Definition AbstractCanvasItem.hpp:47
Definition AbstractLogicsElement.hpp:15
Definition CLogicsComponent.hpp:23
virtual std::optional< uint32_t > getIndexOfConnectionForParam(iv::logic::eDBBlockParamType type, iv::types::logic::paramNumber number) const
Definition CLogicsComponent.cpp:364
std::shared_ptr< CLogicsConnectionPoint > getFirstInputConnectionPoint() const
Definition CLogicsComponent.cpp:283
CLogicsComponent & operator=(const CLogicsComponent &other)=delete
~CLogicsComponent() override=default
CLogicsComponent & operator=(CLogicsComponent &&other)=delete
iv::types::logic::ComponentType m_componentTypeTuple
Definition CLogicsComponent.hpp:84
const TMapIdConnPoint & getOutputRefsConst() const
Definition CLogicsComponent.cpp:342
TMapIdConnPoint m_inputRefs
Definition CLogicsComponent.hpp:85
std::shared_ptr< CLogicsConnectionPoint > getConnectionPoint(iv::logic::eDBBlockParamType pointType, iv::types::logic::paramNumber paramNum)
Definition CLogicsComponent.cpp:263
static std::string strGeneralType(iv::logic::eGeneralType generalType)
Definition CLogicsComponent.cpp:43
const TMapIdConnPoint & getInputRefsConst() const
Definition CLogicsComponent.cpp:332
std::vector< std::shared_ptr< AbstractCanvasItem > > getLinkedItems() override
Definition CLogicsComponent.cpp:138
iv::file::xml::node save(iv::file::xml::node &node) const override
Definition CLogicsComponent.cpp:121
size_t numberOfInputs() const
Definition CLogicsComponent.cpp:223
static bool isExecBlock(const iv::types::logic::ComponentType &componentTypeTuple)
Definition CLogicsComponent.cpp:80
const iv::types::logic::componentType & getComponentType() const
Definition CLogicsComponent.cpp:253
void addConnectionPointOutput(const std::shared_ptr< CLogicsConnectionPoint > &connectionPoint)
Definition CLogicsComponent.cpp:218
const iv::types::logic::componentFinalType & getComponentFinalType() const
Definition CLogicsComponent.cpp:243
static iv::logic::eGeneralType enumGeneralType(const std::string &strType)
Definition CLogicsComponent.cpp:30
std::shared_ptr< CLogicsConnectionPoint > getOutputConnectionPoint(uint32_t index)
Definition CLogicsComponent.cpp:315
CLogicsComponent()=delete
TMapIdConnPoint m_outputRefs
Definition CLogicsComponent.hpp:86
TMapIdConnPoint getOutputRefs()
Definition CLogicsComponent.cpp:337
static bool hasExecutionOrder(const iv::types::logic::ComponentType &componentTypeTuple)
Definition CLogicsComponent.cpp:74
void addConnectionPointInput(const std::shared_ptr< CLogicsConnectionPoint > &connectionPoint)
Definition CLogicsComponent.cpp:213
CLogicsComponent(const CLogicsComponent &other)=delete
TMapIdConnPoint getInputRefs()
Definition CLogicsComponent.cpp:327
static iv::types::logic::ComponentType readLogicsComponentTypeTuple(const iv::file::xml::node &node)
Definition CLogicsComponent.cpp:56
std::shared_ptr< CLogicsConnectionPoint > getFirstOutputConnectionPoint() const
Definition CLogicsComponent.cpp:305
const iv::logic::eGeneralType & getComponentGeneralType() const
Definition CLogicsComponent.cpp:248
std::set< std::shared_ptr< CLogicsConnectionPoint > > getConnectionPoints() const
Definition CLogicsComponent.cpp:347
size_t numberOfOutputs() const
Definition CLogicsComponent.cpp:228
iv::file::xml::node read(const iv::file::xml::node &node) override
Definition CLogicsComponent.cpp:103
std::map< AbstractCanvasItem::TId, std::shared_ptr< CLogicsConnectionPoint > > TMapIdConnPoint
Definition CLogicsComponent.hpp:25
void resetLinkedItems() override
Definition CLogicsComponent.cpp:200
static bool isLibraryBlock(const iv::types::logic::ComponentType &componentTypeTuple)
Definition CLogicsComponent.cpp:85
const iv::types::logic::ComponentType & getComponentTypeTuple() const
Definition CLogicsComponent.cpp:258
void updateLinkedItems() override
Definition CLogicsComponent.cpp:155
bool isAllConnected() const
Definition CLogicsComponent.cpp:233
std::shared_ptr< CLogicsConnectionPoint > getInputConnectionPoint(uint32_t index)
Definition CLogicsComponent.cpp:293
CLogicsComponent(CLogicsComponent &&other)=delete
Definition xmlFile.hpp:15
eGeneralType
Definition enums.hpp:19
eDBBlockParamType
Definition defines.hpp:20
uint32_t componentType
Definition types.hpp:11
uint32_t paramNumber
Definition types.hpp:136
uint32_t componentFinalType
Definition types.hpp:12
Tuple containing the type of logic component (logic blocks, library blocks & others blocks).
Definition types.hpp:22