CIRCT 24.0.0git
Loading...
Searching...
No Matches
esi::detail::PODTypeDeserializer< T > Class Template Reference

Default deserializer for simple 1:1 typed reads. More...

#include <TypedPorts.h>

Collaboration diagram for esi::detail::PODTypeDeserializer< T >:

Public Types

using OutputCallback = TypedReadOwnedCallback<T>

Public Member Functions

 PODTypeDeserializer (OutputCallback output, WireInfo wireInfo)
bool push (std::unique_ptr< SegmentedMessageData > &msg)
bool poke ()

Private Member Functions

bool pokeLocked ()

Private Attributes

OutputCallback output
WireInfo wireInfo
std::mutex mutex
std::unique_ptr< T > pendingOutput

Detailed Description

template<typename T>
class esi::detail::PODTypeDeserializer< T >

Default deserializer for simple 1:1 typed reads.

This path converts one raw message into one typed value and forwards it to the typed callback. If the callback rejects the decoded object, preserve it until the raw message is retried so the same owned object is presented again.

Definition at line 167 of file TypedPorts.h.

Member Typedef Documentation

◆ OutputCallback

template<typename T>
using esi::detail::PODTypeDeserializer< T >::OutputCallback = TypedReadOwnedCallback<T>

Definition at line 169 of file TypedPorts.h.

Constructor & Destructor Documentation

◆ PODTypeDeserializer()

template<typename T>
esi::detail::PODTypeDeserializer< T >::PODTypeDeserializer ( OutputCallback output,
WireInfo wireInfo )
inline

Definition at line 171 of file TypedPorts.h.

References output, and wireInfo.

Member Function Documentation

◆ poke()

template<typename T>
bool esi::detail::PODTypeDeserializer< T >::poke ( )
inline

Definition at line 194 of file TypedPorts.h.

References mutex, and pokeLocked().

◆ pokeLocked()

template<typename T>
bool esi::detail::PODTypeDeserializer< T >::pokeLocked ( )
inlineprivate

Definition at line 200 of file TypedPorts.h.

References output, and pendingOutput.

Referenced by poke(), and push().

◆ push()

template<typename T>
bool esi::detail::PODTypeDeserializer< T >::push ( std::unique_ptr< SegmentedMessageData > & msg)
inline

Member Data Documentation

◆ mutex

template<typename T>
std::mutex esi::detail::PODTypeDeserializer< T >::mutex
private

Definition at line 210 of file TypedPorts.h.

Referenced by poke(), and push().

◆ output

template<typename T>
OutputCallback esi::detail::PODTypeDeserializer< T >::output
private

Definition at line 208 of file TypedPorts.h.

Referenced by PODTypeDeserializer(), and pokeLocked().

◆ pendingOutput

template<typename T>
std::unique_ptr<T> esi::detail::PODTypeDeserializer< T >::pendingOutput
private

Definition at line 211 of file TypedPorts.h.

Referenced by pokeLocked(), and push().

◆ wireInfo

template<typename T>
WireInfo esi::detail::PODTypeDeserializer< T >::wireInfo
private

Definition at line 209 of file TypedPorts.h.

Referenced by PODTypeDeserializer(), and push().


The documentation for this class was generated from the following file: