Template Class Inlet

Class Documentation

template<typename ImplSpec_>
class uit::Inlet

Input to conduit transmission.

Allows user to initiate

  • potentially-blocking, assured transmisison via Put, or

  • non-blocking, potentially-dropped transmission via TryPut.

An Inlet holds a std::shared_ptr to a Duct object, which manages data transmission from the Inlet.

An Inlet’s underlying Duct may be altered or replaced at runtime, for example to provide thread-safe or process-safe transmission.

  • EmplaceDuct emplaces a new transmission implementation within the existing Duct object. (See include/ducts/Duct.hpp for details.)

  • SplitDuct makes a new Duct and points the Inlet’s std::shared_ptr to that Duct.

If an Outlet holds a std::shared_ptr to the Inlet’s Duct, under an EmplaceDuct call the Duct’s change in transmission implementation will be visible to the Outlet and Inlet and the Outlet will still share a Duct. However, under a SplitDuct call that Outlet’s Duct will be unaffected. After a SplitDuct call, the Inlet and Outlet will hold std::shared_ptr’s to separate Ducts.

Note

End users should probably never have to directly instantiate this class. The Conduit, Sink, and Source classes take care of creating a Duct and tying it to an Inlet and/or Outlet. Better yet, the MeshTopology interface 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 construct Conduits and emplace necessary thread-safe and/or process-safe Duct implementations.

Template Parameters
  • ImplSpec: class with static and typedef members specifying implementation details for the conduit framework. See include/config/ImplSpec.hpp.

Public Types

using ImplSpec = ImplSpec_

Public Functions

Inlet(std::shared_ptr<duct_t> duct_)

TODO.

Parameters
  • duct_: TODO.

void Put(const T &val)

TODO.

Parameters
  • val: TODO.

bool TryPut(const T &val)

TODO.

Parameters
  • val: TODO.

template<typename P>
bool TryPut(P &&val)

TODO.

Parameters
  • val: TODO.

bool TryFlush()

TODO.

void Flush()

TODO.

size_t GetNumPutsAttempted() const

TODO.

Return

TODO.

size_t GetNumTryPutsAttempted() const

TODO.

Return

TODO.

size_t GetNumBlockingPuts() const

TODO.

Return

TODO.

size_t GetNumTryPutsThatSucceeded() const

TODO.

Return

TODO.

size_t GetNumPutsThatSucceededEventually() const

TODO.

Return

TODO.

size_t GetNumBlockingPutsThatSucceededImmediately() const

TODO.

Return

TODO.

size_t GetNumPutsThatSucceededImmediately() const

TODO.

Return

TODO.

size_t GetNumPutsThatBlocked() const

TODO.

Return

TODO.

size_t GetNumDroppedPuts() const

TODO.

Return

TODO.

double GetFractionTryPutsDropped() const

TODO.

Return

TODO.

double GetFractionTryPutsThatSucceeded() const

TODO.

Return

TODO.

double GetFractionBlockingPutsThatBlocked() const

TODO.

Return

TODO.

double GetFractionBlockingPutsThatSucceededImmediately() const

TODO.

Return

TODO.

double GetFractionPutsThatSucceededEventually() const

TODO.

Return

TODO.

double GetFractionPutsThatSucceededImmediately() const

TODO.

Return

TODO.

template<typename WhichDuct, typename ...Args>
void EmplaceDuct(Args&&... args)

TODO.

Template Parameters
  • WhichDuct:

  • Args:

Parameters
  • args:

template<typename WhichDuct, typename ...Args>
void SplitDuct(Args&&... args)

TODO.

Template Parameters
  • WhichDuct:

  • Args:

Parameters
  • args:

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
void RegisterInletProc(const uitsl::proc_id_t proc) const
void RegisterInletThread(const uitsl::thread_id_t thread) const
void RegisterOutletProc(const uitsl::proc_id_t proc) 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::proc_id_t> LookupOutletProc() const
std::optional<uitsl::thread_id_t> LookupOutletThread() const
std::optional<uitsl::proc_id_t> LookupInletProc() 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.