PortOutput mimics an Output Block. It wrapps over a Producer Channel. Provides services like
Public Types | |
using | ApiDataTypeT = T |
using | BaseSyncHelper = SyncPortHelperOutput< T > |
using | SpecimenT = typename parameter_traits< T >::SpecimenT |
Public Member Functions | |
dwStatus | bindChannel (ChannelObject *channel) override |
dwStatus | bindChannelWithReference (ChannelObject *channel, GenericDataReference &ref) |
T * | getFreeElement () |
ChannelMetadata & | getMetadata (T *frame) |
ChannelObject::SyncSignaler & | getSyncSignaler () |
ChannelObject::SyncWaiter & | getSyncWaiter () |
void | getWaitFences (T *frame, dw::core::span< NvSciSyncFence > fences) |
bool | isBound () final |
PortOutput (SpecimenT &&ref) | |
PortOutput (SpecimenT const &ref) | |
PortOutput (SpecimenT const &ref, OnSetSyncAttrs signalerAttrs, OnSetSyncAttrs waiterAttrs={}) | |
virtual dwStatus | send (T *frame) |
void | setOnDataReady (void *opaque, ChannelObject::PacketPool::OnDataReady onDataReady) |
void | setSignalFences (T *frame, dw::core::span< NvSciSyncFence > fences) |
dwStatus | wait (dwTime_t timeout) |
![]() | |
SyncPortHelperOutput () | |
![]() | |
bool | isDataSynced () |
virtual void | parseDataSynced (const ChannelParams ¶ms) |
void | setSyncCount (uint32_t index) |
dwStatus | setSyncRetriever (const CycleCountFetcher &func) |
SyncPortHelper () | |
![]() | |
virtual dwStatus | bindChannel (ChannelObject *channel)=0 |
virtual ChannelObject * | getChannel () |
virtual dwStatus | initialize () |
virtual bool | isBound ()=0 |
![]() | |
virtual | ~PortBase ()=default |
Static Public Attributes | |
static constexpr PortDirection | DIRECTION = PortDirection::OUTPUT |
static constexpr char | LOG_TAG [] = "PortOutput" |
Protected Member Functions | |
void | populateDefaultMetadata (ChannelMetadata &header) |
![]() | |
T * | extractInternalPacket (GenericData genericData) |
MetadataPayload * | getMetadataPacket (T *frame) |
void | parseDataSynced (const ChannelParams ¶ms) override |
![]() | |
ChannelPacketTypeID | getNewPacketID (ChannelPacketTypeID packetTypeID) |
void | stampSyncCount (uint32_t &syncCountOut) const |
Additional Inherited Members | |
![]() | |
uint32_t | m_dataOffset |
bool | m_dataSynced |
uint32_t | m_syncCount |
CycleCountFetcher | m_syncCountRetriever |
![]() | |
ChannelObject * | m_channel {nullptr} |
using dw::framework::PortOutput< T >::ApiDataTypeT = T |
using dw::framework::PortOutput< T >::BaseSyncHelper = SyncPortHelperOutput<T> |
using dw::framework::PortOutput< T >::SpecimenT = typename parameter_traits<T>::SpecimenT |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineoverridevirtual |
Implements dw::framework::Port.
Definition at line 128 of file Port.hpp.
References dw::framework::PortOutput< T >::bindChannelWithReference().
|
inline |
Definition at line 134 of file Port.hpp.
References dw::framework::SyncPortHelper::getNewPacketID(), dw::framework::ChannelObject::getParams(), dw::framework::ChannelObject::getProducer(), dw::framework::PortOutput< T >::isBound(), dw::framework::Port::m_channel, dw::framework::GenericDataReference::packetTypeID, dw::framework::SyncPortHelperOutput< T >::parseDataSynced(), dw::framework::GenericDataReference::setSignalerAttributes, and dw::framework::GenericDataReference::setWaiterAttributes.
Referenced by dw::framework::PortOutput< T >::bindChannel().
|
inline |
|
inline |
Definition at line 220 of file Port.hpp.
References dw::framework::SyncPortHelperOutput< T >::getMetadataPacket(), and dw::framework::MetadataPayload::header.
|
inline |
Definition at line 231 of file Port.hpp.
References dw::framework::ChannelObject::PacketPool::getSyncSignaler().
|
inline |
Definition at line 245 of file Port.hpp.
References dw::framework::ChannelObject::PacketPool::getSyncWaiter().
|
inline |
Definition at line 254 of file Port.hpp.
References dw::framework::SyncPortHelperOutput< T >::getMetadataPacket(), dw::framework::ChannelObject::PacketPool::getSyncWaiter(), and dw::framework::ChannelObject::SyncWaiter::getWaitFences().
|
inlinefinalvirtual |
Implements dw::framework::Port.
Definition at line 172 of file Port.hpp.
Referenced by dw::framework::PortOutput< T >::bindChannelWithReference(), dw::framework::PortOutput< T >::setOnDataReady(), and dw::framework::PortOutput< T >::wait().
|
inlineprotected |
Definition at line 260 of file Port.hpp.
References dw::framework::SyncPortHelper::isDataSynced(), dw::framework::ChannelMetadata::iterationCount, dw::framework::METADATA_ITERATION_COUNT, dw::framework::ChannelMetadata::producerId, dw::framework::ChannelMetadata::sequenceNum, dw::framework::SyncPortHelper::stampSyncCount(), and dw::framework::ChannelMetadata::validFields.
Referenced by dw::framework::PortOutput< T >::send().
|
inlinevirtual |
|
inline |
Definition at line 163 of file Port.hpp.
References dw::framework::PortOutput< T >::isBound(), and dw::framework::ChannelObject::PacketPool::setOnDataReady().
|
inline |
Definition at line 240 of file Port.hpp.
References dw::framework::SyncPortHelperOutput< T >::getMetadataPacket(), dw::framework::ChannelObject::PacketPool::getSyncSignaler(), and dw::framework::ChannelObject::SyncSignaler::setSignalFences().
|
inline |
Definition at line 177 of file Port.hpp.
References dw::framework::PortOutput< T >::isBound(), and dw::framework::ChannelObject::PacketPool::wait().
|
staticconstexpr |
|
staticconstexpr |