12#ifndef DECODE_DATABASE_H
13#define DECODE_DATABASE_H
15#include "attributes.h"
16#include "definition_key.h"
17#include "multiplexing.h"
18#include "value_descriptions.h"
22#include <unordered_map>
72 std::uint8_t
dlc = 0U;
73 std::uint32_t
pgn = 0U;
77 std::vector<DecodeSignal> signals;
112 const std::vector<DecodeFrame> &
GetFrames()
const;
122 std::vector<DecodeFrame> frames;
123 std::unordered_map<FrameKey, std::size_t, FrameKeyHasher> frameIndexByKey;
125 std::unordered_map<std::uint32_t, std::vector<std::size_t>> frameIndicesByPgn;
127 explicit Storage(
const std::vector<DecodeFrame> &definitions);
130 std::shared_ptr<const Storage> storage;
Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...
std::shared_ptr< const DecodeSignal > FindSignal(const SignalKey &key) const
Return an owning signal handle, or an empty handle for a missing key.
std::shared_ptr< const DecodeFrame > FindFrame(const FrameKey &key) const
const std::vector< DecodeFrame > & GetFrames() const
PgnLookupResult FindFrameByPgn(std::uint32_t pgn) const
ByteOrder
Signal byte order used for runtime decoding.
ValueType
Signal numeric type.
Runtime-ready frame definition.
FrameKey GetKey() const
Return the stable normalized frame identifier.
std::optional< std::string > frameFormat
std::optional< std::uint32_t > cycleTimeMs
Runtime-ready signal definition.
ValueDescriptions valueDescriptions
std::vector< std::string > receivers
Multiplexing multiplexing
Stable frame identifier: normalized CAN ID and frame type.
std::shared_ptr< const DecodeFrame > definition