36#ifndef IMT_BASE_DFF_ACTIVEPARTS_CHANNELONETOANY_H 
   37#define IMT_BASE_DFF_ACTIVEPARTS_CHANNELONETOANY_H 
   51namespace activeparts {
 
   57template<u
int32_t NumberOfReceivers>
 
   77        for (
uint_fast32_t i {0U}; i < m_numberOfRegisteredReceivers; i++) {
 
   78            m_receiverDetails[i].m_pPortIn->receive(protocolIdentifier, pEventData, eventDataSizeBytes);
 
   89        if (m_numberOfRegisteredReceivers >= NumberOfReceivers) {
 
   90            ASSERT_DEBUG1(
false, 
"number of receivers exceeds template parameter");
 
   96        if (m_numberOfRegisteredReceivers == 0U) {
 
  100        connectPortIn(portIn);
 
  111        if (index < NumberOfReceivers) {
 
  112            handle = m_receiverDetails[index].m_pPortIn->getReceiveHandle();
 
  139        uint32_t i {m_numberOfRegisteredReceivers};
 
  141        while ((i >= 1U) && (currentPriority > m_receiverDetails[i - 1U].m_receiverPriority)) {
 
  143            m_receiverDetails[i] = m_receiverDetails[i - 1U];
 
  148        m_receiverDetails[i].m_pPortIn = &portIn;
 
  149        m_receiverDetails[i].m_receiverPriority = currentPriority;
 
  150        m_numberOfRegisteredReceivers++;
 
  154    struct ReceiverDetails { 
 
  160    uint32_t m_numberOfRegisteredReceivers {0U};
 
  161    std::array<ReceiverDetails, NumberOfReceivers> m_receiverDetails {};
 
void ASSERT_DEBUG1(bool const condition, char_t const *const pMessage) noexcept
"Assert for debugging only" (ASSERT_DEBUG).
 
Serialization is the process of translating data structures into a binary representation.
 
Interface of a channel to transmit data to a receiver.
 
Send the message on a One-to-Any channel (multiple receivers).
 
ChannelOneToAny(ChannelOneToAny const &) noexcept=delete
 
ChannelOneToAny(ChannelOneToAny &&) noexcept=delete
 
ChannelOneToAny()=default
Creates a channel which is not connected.
 
virtual ~ChannelOneToAny()=default
Destructor.
 
void send(uint16_t const protocolIdentifier, ::imt::base::core::serialization::SerializableIfc const *const pEventData, size_t const eventDataSizeBytes) override
 
void connectPorts(PortOutput &portOut, ReceiverIfc const &portIn)
Connect output port with input port via this channel.
 
Messages can be sent on the output port.
 
virtual void setChannel(ChannelIfc &channel)
Set the channel to transport the message.
 
Interface for any receiver to be called on received serialized data.s.
 
static constexpr CoreHandle COREHANDLE_INVALID
Constant which represents an invalid CoreHandle.
 
int16_t CoreHandle
A CoreHandle is used to identify an executable with a unique number (similar to a phone number).
 
RuntimePriority
Runtime executable priorities (=software priorities) The priorities start at 1 with lowest priority,...
 
This is a application specific file which is used to configure Imt.Base.Core.Math.
 
unsigned __int16 uint16_t
 
unsigned __int32 uint32_t