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= emp::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.
-
const T &
GetNext()¶ Get next received value.
Blocking.
- Return
TODO.
-
optional_ref_t
GetNextOrNullopt()¶ Get next if available.
Non-blocking.
- Return
TODO.
-
size_t
GetReadCount() const¶ TODO.
- Return
TODO.
-
size_t
GetRevisionCount() const¶ TODO.
- Return
TODO.
-
size_t
GetNetFlux() 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.
-
emp::optional<bool>
HoldsIntraImpl() const¶
-
emp::optional<bool>
HoldsThreadImpl() const¶
-
emp::optional<bool>
HoldsProcImpl() const¶
-
bool
CanStep() const¶
-
std::string
ToString() const¶ TODO.
- Return
TODO.