Class BasePort

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class BasePort : public reactor::ReactorElement

Subclassed by reactor::Port< void >

Public Functions

inline auto is_input() const noexcept -> bool
inline auto is_output() const noexcept -> bool
inline auto is_present() const noexcept -> bool
inline auto has_inward_binding() const noexcept -> bool
inline auto has_outward_bindings() const noexcept -> bool
inline auto has_dependencies() const noexcept -> bool
inline auto has_anti_dependencies() const noexcept -> bool
inline auto inward_binding() const noexcept -> BasePort*
inline auto outward_bindings() const noexcept -> const auto&
inline auto triggers() const noexcept -> const auto&
inline auto dependencies() const noexcept -> const auto&
inline auto anti_dependencies() const noexcept -> const auto&
inline auto message_multiport() -> bool
inline void clear_multiport() noexcept
inline void disconnect_multiport() noexcept

Protected Functions

inline BasePort(const std::string &name, PortType type, Reactor *container)
inline BasePort(const std::string &name, PortType type, Reactor *container, BaseMultiport *multiport, std::size_t index)
void base_bind_to(BasePort *port)
void register_dependency(Reaction *reaction, bool is_trigger) noexcept
void register_antidependency(Reaction *reaction) noexcept
virtual void cleanup() = 0

Protected Attributes

bool present_ = {false}

Private Members

BasePort *inward_binding_ = {nullptr}
std::set<BasePort*> outward_bindings_ = {}
const PortType type_
BaseMultiport *multiport_ = nullptr
std::size_t index_ = 0
std::set<Reaction*> dependencies_ = {}
std::set<Reaction*> triggers_ = {}
std::set<Reaction*> anti_dependencies_ = {}

Friends

friend class Reaction
friend class Scheduler