36#ifndef IMT_BASE_DFF_ACTIVEPARTS_PORTOUTPUTJOIN_H 
   37#define IMT_BASE_DFF_ACTIVEPARTS_PORTOUTPUTJOIN_H 
   49namespace activeparts {
 
   54template<u
int32_t NumberOfPortsToJoin>
 
   72        for (
uint_fast32_t i {0U}; i < m_numberOfRegisteredPorts; i++) {
 
   73            if (m_portOut[i] == 
nullptr) {
 
   74                ASSERT_DEBUG1(
false, 
"Invalid port (PortOutputJoin::setChannel)");
 
   78            m_portOut[i]->setChannel(channel);
 
   88        if (m_numberOfRegisteredPorts >= NumberOfPortsToJoin) {
 
   89            ASSERT_DEBUG1(
false, 
"number of receivers exceeds template parameter (PortOutputJoin::join)");
 
   95        m_portOut[m_numberOfRegisteredPorts] = &portOut;
 
   96        m_numberOfRegisteredPorts++;
 
  100        if (pChannel != 
nullptr) {
 
  113        if (index < NumberOfPortsToJoin) {
 
  114            pPort = m_portOut[index];
 
  122    uint32_t m_numberOfRegisteredPorts {0U};
 
  123    std::array<PortOutput*, NumberOfPortsToJoin> m_portOut {
nullptr};
 
void ASSERT_DEBUG1(bool const condition, char_t const *const pMessage) noexcept
"Assert for debugging only" (ASSERT_DEBUG).
 
Interface of a channel to transmit data to a receiver.
 
Messages can be sent on the output port.
 
ChannelIfc const * getChannel() const
Get the read only pointer to the channel.
 
virtual void setChannel(ChannelIfc &channel)
Set the channel to transport the message.
 
Joins multiple PortOutputs to a single.
 
PortOutputJoin()=default
Constructor.
 
bool join(PortOutput &portOut)
Joins a PortOutput.
 
void setChannel(ChannelIfc &channel) final
 
This is a application specific file which is used to configure Imt.Base.Core.Math.
 
unsigned __int32 uint32_t