Skip to main content

chronon

Namespaces

Name
chronon::tree
chronon::sender
chronon::params
chronon::observe

Classes

Name
classchronon::VersionedRegister
Lock-free ring buffer of (value, cycle) versions for lookahead-safe shared state.
classchronon::Unit
classchronon::TreeNode
Hierarchical tree node with path-based addressing and parameter inheritance.
classchronon::TickableUnit
structchronon::TickSimulationConfig
classchronon::TickSimulation
structchronon::TerminationRequest
Context for a termination request: reason, exit code, cycle, unit, message.
classchronon::TerminationController
classchronon::StageReg
N-pipe pipeline register with ping-pong slots and runtime write tracking.
classchronon::StagePipeline
Groups heterogeneous StageReg / SingleStageReg instances for batch lifecycle calls.
classchronon::SingleStageReg
Single-entry pipeline register with ping-pong slots and runtime write tracking.
classchronon::SimulationApp
Unified entry point: CLI, YAML override handling, and observation lifecycle.
classchronon::SenderSimulationBuilder
Constructs simulations from YAML configuration in four phases.
classchronon::SenderFactoryRegistry
Thread-safe singleton registry of unit factories keyed by YAML type name.
classchronon::PriorityArbiter
Declarative N-pipe priority arbiter with overflow, bank-conflict, and idle-fill.
classchronon::PortDirectory
classchronon::PortBindingRegistry
classchronon::PortBase
classchronon::PhasedTickableUnit
classchronon::PhasedAutoRegisteredUnit
AutoRegisteredUnit variant with automatic Phase0/Phase1 dispatch.
structchronon::Phase1
Phase tag for odd cycles; reads slot 1, writes slot 0.
structchronon::Phase0
Phase tag for even cycles; reads slot 0, writes slot 1.
classchronon::ParameterSet
Base for parameter sets backed by self-registering Param members.
classchronon::ParamBase
Type-erased interface for self-registering parameters.
classchronon::Param
Self-registering parameter that hooks into its owning ParameterSet.
classchronon::OutPort
structchronon::ObservationStats
Aggregated per-unit observation statistics.
classchronon::ObservationContext
Per-unit central context for counters, tracing, logging, and epochs.
structchronon::ObservationChannelStats
Per-channel emit/drop counts.
classchronon::ObservableUnit
classchronon::InPort
classchronon::ISenderFactory
Type-erased factory interface for runtime unit creation by YAML type name.
structchronon::DerivedCounterDef
Transport struct carrying a derived-counter formula from unit to backend.
classchronon::DerivedCounter
Computed counter declared as a unit member alongside raw Counters.
classchronon::Counter
classchronon::Connection
classchronon::CategoryRegistry
Global registry that auto-assigns bit positions for user trace categories.
classchronon::Category
Trace category with automatic bit-position assignment at startup.
classchronon::AutoRegisteredUnit
CRTP base that auto-registers Derived with SenderFactoryRegistry at program load.
structchronon::ArbWinner
Winning request on a pipe; bank_conflict marks a priority win blocked by a conflict.
structchronon::ArbResult
Per-tick arbitration result: winners by pipe, losers, and request counts.
structchronon::ArbRequest
A single arbitration request for one source on one pipe.
structchronon::ArbLoser
A losing request with the reason it was rejected.

Types

Name
enum classUnitState { }
enum classTerminationReason { }
Why the simulation is being terminated.
using sender::TickSimulationConfigSimulationConfig
using sender::config::SenderSimulationBuilderSimulationBuilder
using sender::TickSimulationSimulation
enum classPortPolicy { }
enum classObservationChannel { }
Identifies the observation channel for per-unit stats tracking.
enum classLoseReason { }
enum classLogLevel { }
using sender::factory::SenderFactoryRegistryFactoryRegistry
enum classCounterId { }
Strongly typed counter identifier; indexes into the counter storage array.
using std::function< double(std::span< const uint64_t >)>ComputeFn
enum classBankConflictPriority { }

Functions

Name
uint32_ttoIndex(CounterId id)
template <ValidPhase P,std::size_t N,typename Src ,typename Dst >
void
simpleForwardAll(Src & src, Dst & dst)
Forward all pipes from src to dst with stall-aware retention.
template <ValidPhase P,typename Src ,typename Dst >
bool
simpleForward(Src & src, Dst & dst, std::size_t pipe)
template <ValidPhase P,typename Src ,typename Dst ,typename Fn >
bool
processForward(Src & src, Dst & dst, std::size_t pipe, Fn && fn)
template <ValidPhase P,typename Src ,typename Dst ,typename Convert >
bool
convertForward(Src & src, Dst & dst, std::size_t pipe, Convert && convert)

Types Documentation

enum UnitState

EnumeratorValueDescription

enum TerminationReason

EnumeratorValueDescription

Why the simulation is being terminated.

using SimulationConfig

using chronon::SimulationConfig = sender::TickSimulationConfig;

using SimulationBuilder

using chronon::SimulationBuilder = sender::config::SenderSimulationBuilder;

using Simulation

using chronon::Simulation = sender::TickSimulation;

enum PortPolicy

EnumeratorValueDescription

PortPolicy - Selects InPort cancellation/dispatch behavior.

  • LegacyFastPath (default): legacy behavior. cancelYoungerThan/cancelOlderThan use the receiver-side generation/min-key/max-key bound mechanism. The sender path (enqueueStored_, pushFromThread) early-rejects messages that already look canceled. This is the backward-compatible default. Carries the known #7 overlapping-flush gap and #8 generation race in parallel mode; new code that needs strong cancellation guarantees should use StageSelective.
  • StageSelective: optimized for delay=1 stage-register ports with selective cancellation. Each message carries enqueue_cycle (producer's localCycle at push time). cancelYoungerThan(key) installs a StagePredicate {flush_cycle = receiver localCycle, max_keep = key}; predicates are stored in a small fixed-size slot array and retired when the receiver advances past flush_cycle. The sender side does NOT consult receiver state — the filter is applied receiver-side only on pop. This eliminates the cross-thread receiver-atomic read that races in parallel mode (#8) and the overlapping-flush zombie escape (#7).

enum ObservationChannel

EnumeratorValueDescription

Identifies the observation channel for per-unit stats tracking.

enum LoseReason

EnumeratorValueDescription

enum LogLevel

EnumeratorValueDescription

using FactoryRegistry

using chronon::FactoryRegistry = sender::factory::SenderFactoryRegistry;

enum CounterId

EnumeratorValueDescription

Strongly typed counter identifier; indexes into the counter storage array.

using ComputeFn

using chronon::observe::ComputeFn = std::function<double(std::span<const uint64_t>)>;

Receives snapshotted delta values for each source counter (declaration order) and returns the derived value. Invoked on the backend thread at CSV dump time.

enum BankConflictPriority

EnumeratorValueDescription

Functions Documentation

function toIndex

uint32_t toIndex(
CounterId id
)

function simpleForwardAll

template <ValidPhase P,
std::size_t N,
typename Src ,
typename Dst >
void simpleForwardAll(
Src & src,
Dst & dst
)

Forward all pipes from src to dst with stall-aware retention.

function simpleForward

template <ValidPhase P,
typename Src ,
typename Dst >
bool simpleForward(
Src & src,
Dst & dst,
std::size_t pipe
)

Simple stall-aware forward for a single pipe. If dst already has a write pending for this pipe, retains in src. Returns true if forwarded, false if retained (stalled).

function processForward

template <ValidPhase P,
typename Src ,
typename Dst ,
typename Fn >
bool processForward(
Src & src,
Dst & dst,
std::size_t pipe,
Fn && fn
)

Forward with processing: fn(pipe, data&) called on consumed data before writing to dst. Returns true if forwarded, false if stalled.

function convertForward

template <ValidPhase P,
typename Src ,
typename Dst ,
typename Convert >
bool convertForward(
Src & src,
Dst & dst,
std::size_t pipe,
Convert && convert
)

Cross-type forward: convert(pipe, src_data) returns dst_data. Returns true if forwarded, false if stalled.


Updated on 2026-05-26 at 05:42:32 +0000