Special Relativity in Financial Modeling 1.0.0
Lorentz transforms, spacetime classification, and geodesic price paths for quantitative finance
Loading...
Searching...
No Matches
Classes | Namespaces
tick_ingester.hpp File Reference

TickIngester — ingestion thread that reads, validates, and ring-pushes ticks. More...

#include "spsc_ring.hpp"
#include "tick.hpp"
#include "tick_source.hpp"
#include <atomic>
#include <cstdint>
#include <thread>

Go to the source code of this file.

Classes

struct  srfm::stream::TickIngesterCounters
 Diagnostic counters for the ingestion thread. More...
 
class  srfm::stream::TickIngester
 Ingestion thread owner. Non-copyable, non-movable. More...
 

Namespaces

namespace  srfm
 
namespace  srfm::stream
 

Detailed Description

TickIngester — ingestion thread that reads, validates, and ring-pushes ticks.

Module: include/srfm/stream/ Owner: AGT-10 (Builder) — 2026-03-01

Responsibility

Run the ingestion thread: repeatedly call source.read(), validate each tick with tick_is_valid(), push valid ticks into SPSCRing<OHLCVTick, 65536>, and count dropped ticks by rejection category.

Guarantees

• Never blocks the calling thread (start() launches a std::thread). • Never throws from the hot path (noexcept read/validate/push loop). • Counts all dropped ticks; drops are never silently lost. • Graceful shutdown: stop() signals the thread and join()s within the destructor if the caller forgets to call stop().

NOT Responsible For

• Sourcing ticks (TickSource) • Signal processing (SignalProcessor)

Definition in file tick_ingester.hpp.