Skip to main content

chronon::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.
voidexecuteTick()
Inlined hot path executed millions of times per second.
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
voiduseFastCycleCounter()
Default mode. Eliminates atomic overhead (~80% of tight-loop time).
voiduseAtomicCycleCounter()
tree::TreeNode *treeNode() const
UnitStatestate() const
voidsetTreeNode(tree::TreeNode * node)
Triggers registration of all pending ports to PortDirectory.
voidregisterPort(PortBase * port)
const std::vector< PortBase * > &ports() const
Unit &operator=(const Unit & ) =delete
Unit &operator=(Unit && ) =delete
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.
uint8_tcrashNameLen() const
const char *crashName() const
voidaddPendingPortRegistration(std::function< void(const std::string &)> registration)
Unit(std::string name)
Unit(const Unit & ) =delete
Unit(Unit && ) =delete

Protected Functions inherited from chronon::sender::Unit

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

Friends inherited from chronon::sender::Unit

Name
classTickSimulation

Detailed Description

template <typename Derived >
class chronon::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-05-26 at 05:42:32 +0000