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 | bindChannelForPODTypePacket (ChannelObject *channel) |
dwStatus | bindChannelWithReference (ChannelObject *channel, GenericDataReference &ref) |
detail::vectorIterable< T > | getAllBufferIter () |
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) |
SyncPortHelper () | |
![]() | |
virtual dwStatus | bindChannel (ChannelObject *channel)=0 |
virtual ChannelObject * | getChannel () |
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 |
![]() | |
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 214 of file Port.hpp.
References dw::framework::PortOutput< T >::bindChannelWithReference().
|
inline |
Bind channel to transfer packets of POD type, Pointers are considered POD so only shallow copy happens. It is expected to work for local share memory channel only.
Definition at line 254 of file Port.hpp.
References dw::framework::DWFRAMEWORK_METADATA_PACKET_TYPE_ID_OFFSET, dw::framework::DWFRAMEWORK_PACKET_ID_DEFAULT, dw::framework::ChannelObject::getParams(), dw::framework::ChannelObject::getProducer(), dw::framework::ChannelParams::getType(), dw::framework::ExceptionGuard::guard(), dw::framework::PortOutput< T >::isBound(), dw::framework::GenericDataReference::packetTypeID, dw::framework::SyncPortHelperOutput< T >::parseDataSynced(), and dw::framework::SHMEM_LOCAL.
|
inline |
Definition at line 220 of file Port.hpp.
References dw::framework::SyncPortHelper::getNewPacketID(), dw::framework::ChannelObject::getParams(), dw::framework::ChannelObject::getProducer(), dw::framework::ExceptionGuard::guard(), 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 |
iterable for all the buffers in the output channel pool.
Definition at line 392 of file Port.hpp.
References dw::framework::ChannelObject::PacketPool::getAllBuffers().
|
inline |
|
inline |
Definition at line 350 of file Port.hpp.
References dw::framework::SyncPortHelperOutput< T >::getMetadataPacket(), and dw::framework::MetadataPayload::header.
|
inline |
Definition at line 361 of file Port.hpp.
References dw::framework::ChannelObject::PacketPool::getSyncSignaler().
|
inline |
Definition at line 375 of file Port.hpp.
References dw::framework::ChannelObject::PacketPool::getSyncWaiter().
|
inline |
Definition at line 384 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 300 of file Port.hpp.
Referenced by dw::framework::PortOutput< T >::bindChannelForPODTypePacket(), dw::framework::PortOutput< T >::bindChannelWithReference(), dw::framework::PortOutput< T >::setOnDataReady(), and dw::framework::PortOutput< T >::wait().
|
inlineprotected |
Definition at line 398 of file Port.hpp.
References dw::framework::SyncPortHelper::isDataSynced(), dw::framework::ChannelMetadata::iterationCount, dw::framework::METADATA_ITERATION_COUNT, dw::framework::ChannelMetadata::producerId, dw::framework::setSequenceNumber(), dw::framework::SyncPortHelper::stampSyncCount(), and dw::framework::ChannelMetadata::validFields.
Referenced by dw::framework::PortOutput< T >::send().
|
inlinevirtual |
Definition at line 337 of file Port.hpp.
References dw::framework::SyncPortHelperOutput< T >::getMetadataPacket(), dw::framework::PortOutput< T >::populateDefaultMetadata(), and dw::framework::ChannelObject::Producer::send().
|
inline |
Definition at line 291 of file Port.hpp.
References dw::framework::PortOutput< T >::isBound(), and dw::framework::ChannelObject::PacketPool::setOnDataReady().
|
inline |
Definition at line 370 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 305 of file Port.hpp.
References dw::framework::PortOutput< T >::isBound(), and dw::framework::ChannelObject::PacketPool::wait().
|
staticconstexpr |
|
staticconstexpr |