Skip to main content

chronon::sender::factory::PhasedAutoRegisteredUnit

AutoRegisteredUnit variant with automatic Phase0/Phase1 dispatch. More...

#include <SenderFactory.hpp>

Inherits from chronon::sender::PhasedTickableUnit< Derived >, chronon::sender::TickableUnit, chronon::sender::Unit

Public Functions

Name
PhasedAutoRegisteredUnit(std::string name)

Protected Functions

Name
PhasedAutoRegisteredUnit(std::string name, bool )

Additional inherited members

Public Functions inherited from chronon::sender::PhasedTickableUnit< Derived >

Name
virtual voidtick() override
Per-cycle behavior. Must complete synchronously.
PhasedTickableUnit(std::string name)

Protected Functions inherited from chronon::sender::PhasedTickableUnit< Derived >

Name
template <ValidPhase P>
void
tickPhase()

Public Functions inherited from chronon::sender::TickableUnit

Name
virtual~TickableUnit() =default
virtual voidtick() =0
Per-cycle behavior. Must complete synchronously.
virtual boolisCompleted() const
Return true to signal the simulation can stop.
voidexecuteTickAlwaysActive()
Hot path for units that have not opted into activity scheduling.
voidexecuteTick()
Inlined hot path executed millions of times per second.
voidadvanceIdleTick(uint64_t delta)
Batched inactive-cycle advance used when an entire cluster is idle.
TickableUnit(std::string name)

Protected Functions inherited from chronon::sender::TickableUnit

Name
template <ValidPhase P>
void
tickPhase()
voidrequestTermination(TerminationReason reason, int32_t exit_code =0, std::string_view message ="")
voidrequestTermination(TerminationReason reason, int32_t exit_code, uint64_t cycle, std::string_view message)
voidrequestExitSyscall(int32_t exit_code)
voidrequestError(std::string_view message)

Friends inherited from chronon::sender::TickableUnit

Name
classTickSimulation

Public Functions inherited from chronon::sender::Unit

Name
virtual~Unit() =default
voidwakeAt(uint64_t cycle)
Wake the unit no later than cycle. Safe for cross-thread producers.
boolusesActivityScheduling() const
voiduseFastCycleCounter()
Default mode. Eliminates atomic overhead (~80% of tight-loop time).
voiduseAtomicCycleCounter()
tree::TreeNode *treeNode() const
uint32_ttickInterval() const
UnitStatestate() const
voidsleepUntil(uint64_t cycle)
voidsleepForever()
Disable the tick body until an external wakeAt() or port arrival wakes it.
boolshouldRunTickAt(uint64_t cycle) const
voidsetTreeNode(tree::TreeNode * node)
Triggers registration of all pending ports to PortDirectory.
voidsetTickInterval(uint32_t interval)
voidregisterPort(PortBase * port)
const std::vector< PortBase * > &ports() const
Unit &operator=(const Unit & ) =delete
Unit &operator=(Unit && ) =delete
uint64_tnextRunnableCycleAtOrAfter(uint64_t cycle) const
uint64_tnextActiveCycle() const
const std::string &name() const
uint64_tlocalCycle() const
virtual voidinitialize()
Called after all connections are made, before run() starts.
uint32_tid() const
std::stringfullPath() const
Returns the tree path if a TreeNode is set, else the unit name.
virtual voidfinalize()
Called after run() completes or simulation is stopped.
voidenableActivityScheduling()
uint8_tcrashNameLen() const
const char *crashName() const
voidaddPendingPortRegistration(std::function< void(const std::string &)> registration)
boolacceptsPortWakeups() const
Unit(std::string name)
Unit(const Unit & ) =delete
Unit(Unit && ) =delete

Protected Functions inherited from chronon::sender::Unit

Name
voidsetLocalCycle(uint64_t cycle)
voidsetId(uint32_t id)
uint64_tlocalCycleAtomic() const
voidfinishActiveTick_()
voidbeginActiveTick_()
voidadvanceLocalCycle(uint64_t delta =1)
Fast path: ~0.3ns increment. Slow path (atomic): ~15ns.

Public Attributes inherited from chronon::sender::Unit

Name
uint64_tNEVER_ACTIVE

Friends inherited from chronon::sender::Unit

Name
classTickSimulation

Detailed Description

template <typename Derived >
class chronon::sender::factory::PhasedAutoRegisteredUnit;

AutoRegisteredUnit variant with automatic Phase0/Phase1 dispatch.

For units that combine YAML factory registration with phase-aware pipeline registers. Subclasses implement tickPhase<P>() instead of [tick()](/docs/api/Classes/classchronon_1_1sender_1_1PhasedTickableUnit#function-tick) — dispatch boilerplate is supplied by PhasedTickableUnit.

Public Functions Documentation

function PhasedAutoRegisteredUnit

inline explicit PhasedAutoRegisteredUnit(
std::string name
)

Protected Functions Documentation

function PhasedAutoRegisteredUnit

inline PhasedAutoRegisteredUnit(
std::string name,
bool
)

Updated on 2026-07-06 at 09:03:33 +0000