Template Class Outlet¶
Defined in File Outlet.hpp
Class Documentation¶
-
template<typename
ImplSpec_>
classuit::Outlet¶ Output from conduit transmission.
Allows user to initiate
potentially-blocking, strictly-sequential of the next unread received transmission, or
non-blocking fetch of the latest received transmission via
JumpGet.
An
Outletholds astd::shared_ptrto aDuctobject, which manages data transmission to theOutlet.An
Outlet’s underlyingDuctmay be altered or replaced at runtime, for example to provide thread-safe or process-safe transmission.EmplaceDuctemplaces a new transmission implementation within the existingDuctobject. (Seeinclude/ducts/Duct.hppfor details.)SplitDuctmakes a newDuctand points theOutlet’sstd::shared_ptrto thatDuct.
If an
Inletholds astd::shared_ptrto theOutlet’sDuct, under anEmplaceDuctcall theDuct’s change in transmission implementation will be visible to theInletand theInletandOutletwill still share aDuct. However, under aSplitDuctcall thatInlet’sDuctwill be unaffected. After aSplitDuctcall, theInletandOutletwill holdstd::shared_ptr’s to separateDucts.- Note
End users should probably never have to directly instantiate this class. The
Conduit,Sink, andSourceclasses take care of creating aDuctand tying it to anInletand/orOutlet. Better yet, theMeshTopologyinterface allows end users to construct a conduit network in terms of a connection topology and a mapping to assign nodes to threads and processes without having to manually constructConduitsand emplace necessary thread-safe and/or process-safeDuctimplementations.- Template Parameters
ImplSpec: class with static and typedef members specifying implementation details for the conduit framework. Seeinclude/config/ImplSpec.hpp.
Public Types
-
using
optional_ref_t= std::optional<std::reference_wrapper<const T>>¶
Public Functions
TODO.
-
size_t
TryStep(const size_t num_steps = 1)¶
-
size_t
Jump()¶
-
const T &
Get() const¶ TODO.
- Return
TODO.
-
T &
Get()¶ TODO.
- Return
TODO.
-
const T &
JumpGet()¶ TODO.
- Return
TODO.
-
void
Step(size_t num_steps = 1)¶ Step forward num_steps values.
Blocking.
- Return
TODO.
-
const T &
GetNext(const size_t num_steps = 1)¶ Get next received value.
Blocking.
- Return
TODO.
-
optional_ref_t
GetNextOrNullopt()¶ Get next if available.
Non-blocking.
- Return
TODO.
-
size_t
GetNumReadsPerformed() const¶ TODO.
- Return
TODO.
-
size_t
GetNumReadsThatWereFresh() const¶ TODO.
- Return
TODO.
-
size_t
GetNumReadsThatWereStale() const¶ TODO.
- Return
TODO.
-
size_t
GetNumRevisionsPulled() const¶ TODO.
- Return
TODO.
-
size_t
GetNumTryPullsAttempted() const¶ TODO.
- Return
TODO.
-
size_t
GetNumBlockingPulls() const¶ TODO.
- Return
TODO.
-
size_t
GetNumBlockingPullsThatBlocked() const¶ TODO.
- Return
TODO.
-
size_t
GetNumRevisionsFromTryPulls() const¶ TODO.
identical to GetNumTryPullsThatWereLaden
- Return
TODO.
-
size_t
GetNumRevisionsFromBlockingPulls() const¶ TODO.
- Return
TODO.
-
size_t
GetNumPullsAttempted() const¶ TODO.
- Return
TODO.
-
size_t
GetNumPullsThatWereLadenEventually() const¶ TODO.
- Return
TODO.
-
size_t
GetNumBlockingPullsThatWereLadenImmediately() const¶ TODO.
- Return
TODO.
-
size_t
GetNumBlockingPullsThatWereLadenEventually() const¶ TODO.
- Return
TODO.
-
size_t
GetNumPullsThatWereLadenImmediately() const¶ TODO.
- Return
TODO.
-
size_t
GetNumTryPullsThatWereLaden() const¶ TODO.
- Note
Identical to
GetNumRevisionsFromTryPulls.- Return
TODO.
-
size_t
GetNumTryPullsThatWereUnladen() const¶ TODO.
- Return
TODO.
-
double
GetFractionTryPullsThatWereLaden() const¶ TODO.
- Return
TODO.
-
double
GetFractionTryPullsThatWereUnladen() const¶ TODO.
- Return
TODO.
-
double
GetFractionBlockingPullsThatBlocked() const¶ TODO.
- Return
TODO.
-
double
GetFractionBlockingPullsThatWereLadenImmediately() const¶ TODO.
- Return
TODO.
-
double
GetFractionPullsThatWereLadenImmediately() const¶ TODO.
- Return
TODO.
-
double
GetFractionPullsThatWereLadenEventually() const¶ TODO.
- Return
TODO.
-
size_t
GetNetFluxThroughDuct() const¶ TODO.
- Return
TODO.
-
double
GetFractionReadsThatWereFresh() const¶ TODO.
- Return
TODO.
-
double
GetFractionReadsThatWereStale() const¶ TODO.
- Return
TODO.
-
double
GetFractionRevisionsThatWereRead() const¶ TODO.
- Return
TODO.
-
double
GetFractionRevisionsThatWereNotRead() const¶ TODO.
- Return
TODO.
-
double
GetFractionDuctFluxThatWasSteppedThrough() const¶ TODO.
- Return
TODO.
-
double
GetFractionDuctFluxThatWasJumpedOver() const¶ TODO.
- Return
TODO.
-
double
GetFractionDuctFluxThatWasRead() const¶ TODO.
- Return
TODO.
-
template<typename
WhichDuct, typename ...Args>
voidEmplaceDuct(Args&&... args)¶ TODO.
- Template Parameters
WhichDuct: TODOArgs: TODO
- Parameters
args: TODO
-
template<typename
WhichDuct, typename ...Args>
voidSplitDuct(Args&&... args)¶ TODO.
- Template Parameters
WhichDuct: TODOArgs: TODO
- Parameters
args: TODO
-
duct_t::uid_t
GetDuctUID() const¶ TODO.
- Return
TODO.
-
std::optional<bool>
HoldsIntraImpl() const¶
-
std::optional<bool>
HoldsThreadImpl() const¶
-
std::optional<bool>
HoldsProcImpl() const¶
-
std::string
WhichImplHeld() const¶
-
bool
CanStep() const¶
-
void
RegisterInletThread(const uitsl::thread_id_t thread) const¶
-
void
RegisterOutletThread(const uitsl::thread_id_t thread) const¶
-
void
RegisterEdgeID(const size_t edge_id) const¶
-
void
RegisterInletNodeID(const size_t node_id) const¶
-
void
RegisterOutletNodeID(const size_t node_id) const¶
-
void
RegisterMeshID(const size_t mesh_id) const¶
-
std::optional<uitsl::thread_id_t>
LookupOutletThread() const¶
-
std::optional<uitsl::thread_id_t>
LookupInletThread() const¶
-
std::optional<size_t>
LookupEdgeID() const¶
-
std::optional<size_t>
LookupInletNodeID() const¶
-
std::optional<size_t>
LookupOutletNodeID() const¶
-
std::optional<size_t>
LookupMeshID() const¶
-
std::string
ToString() const¶ TODO.
- Return
TODO.