FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::EventHeader Struct Reference

#include <fastmm/core/messages.hpp>

Public Types

enum  Flags : std::uint8_t {
  kSynthetic = 1U << 0 , kReplayed = 1U << 1 , kSnapshot = 1U << 2 , kOutbound = 1U << 3 ,
  kEngineTime = 1U << 4 , kDropped = 1U << 5 , kTruncatedBids = 1U << 6 , kTruncatedAsks = 1U << 7
}
 

Public Attributes

std::uint32_t len
 total bytes incl. header, multiple of 64 (offset 0)
 
EventType type
 (offset 4)
 
std::uint8_t version
 kMessageVersion
 
VenueId venue
 
std::uint8_t flags
 
InstrumentId instrument
 dense id, invalid for non-instrument events (offset 8)
 
std::uint32_t reserved0
 journal: engine-time delta when kEngineTime (offset 12)
 
std::uint64_t seq
 engine consumption order; assigned by JournalWriter (16)
 
std::uint64_t venue_seq
 venue update id / sequence number (24)
 
Timestamp exch_ts
 venue event time (32)
 
Timestamp recv_ts
 T0 wall-clock (40)
 
Cycles t0_cycles
 T0 raw TSC at recv (48)
 
std::uint32_t t1_delta
 cycles T0->T1 (decoded) (56)
 
std::uint32_t t2_delta
 cycles T0->T2 (book applied) (60)
 

Member Enumeration Documentation

◆ Flags

enum fastmm::EventHeader::Flags : std::uint8_t
Enumerator
kSynthetic 

generated locally (reconcile fill, sim), not from the venue

kReplayed 

came from a journal

kSnapshot 

BookDelta carries a full snapshot.

kOutbound 

engine -> venue message copied into the journal

kEngineTime 

Journal only (format v2, ADR-0010): reserved0 holds the engine clock at consumption as a signed ns delta from the previous kEngineTime record or EngineTimeMsg.

kDropped 

journal only: outbound message the transport did not accept

kTruncatedBids 

BookDelta: the venue's update changed more levels on this side than the message carries, and the side holds the ones nearest the touch (LevelSpill).

A book level behind the last one it carries may be stale; L2Book drops those.

kTruncatedAsks 

Member Data Documentation

◆ len

std::uint32_t fastmm::EventHeader::len

total bytes incl. header, multiple of 64 (offset 0)

◆ type

EventType fastmm::EventHeader::type

(offset 4)

◆ version

std::uint8_t fastmm::EventHeader::version

kMessageVersion

◆ venue

VenueId fastmm::EventHeader::venue

◆ flags

std::uint8_t fastmm::EventHeader::flags

◆ instrument

InstrumentId fastmm::EventHeader::instrument

dense id, invalid for non-instrument events (offset 8)

◆ reserved0

std::uint32_t fastmm::EventHeader::reserved0

journal: engine-time delta when kEngineTime (offset 12)

◆ seq

std::uint64_t fastmm::EventHeader::seq

engine consumption order; assigned by JournalWriter (16)

◆ venue_seq

std::uint64_t fastmm::EventHeader::venue_seq

venue update id / sequence number (24)

◆ exch_ts

Timestamp fastmm::EventHeader::exch_ts

venue event time (32)

◆ recv_ts

Timestamp fastmm::EventHeader::recv_ts

T0 wall-clock (40)

◆ t0_cycles

Cycles fastmm::EventHeader::t0_cycles

T0 raw TSC at recv (48)

◆ t1_delta

std::uint32_t fastmm::EventHeader::t1_delta

cycles T0->T1 (decoded) (56)

◆ t2_delta

std::uint32_t fastmm::EventHeader::t2_delta

cycles T0->T2 (book applied) (60)