FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
symbology.hpp File Reference

SymbolTable (6.2): venue symbol <-> InstrumentId. More...

#include "fastmm/core/instrument.hpp"
#include "fastmm/core/strong_id.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
#include <string_view>

Go to the source code of this file.

Classes

class  fastmm::venues::SymbolTable
 

Namespaces

namespace  fastmm
 
namespace  fastmm::venues
 

Functions

constexpr char fastmm::venues::ascii_upper (char c) noexcept
 
constexpr char fastmm::venues::ascii_lower (char c) noexcept
 
constexpr std::uint64_t fastmm::venues::symbol_hash (std::string_view s) noexcept
 FNV-1a over the upper-cased bytes.
 
constexpr bool fastmm::venues::iequals_symbol (std::string_view a, std::string_view b) noexcept
 

Detailed Description

SymbolTable (6.2): venue symbol <-> InstrumentId.

Built once at startup from the InstrumentTable, read-only afterwards, so the net threads can share it without locks.

Lookup is an open-addressing table keyed by (VenueId, FNV-1a of the upper-cased symbol); venues differ in case (Binance streams are lowercase, REST/user-data payloads uppercase, Bybit always uppercase) so the canonical key is uppercase and lookups fold case on the fly without allocating.