20#ifndef ORES_COMMS_ANALYSER_DOMAIN_SESSION_READER_HPP
21#define ORES_COMMS_ANALYSER_DOMAIN_SESSION_READER_HPP
30#include <boost/uuid/uuid.hpp>
31#include "ores.logging/make_logger.hpp"
32#include "ores.comms/messaging/frame.hpp"
33#include "ores.comms/recording/session_file.hpp"
41 boost::uuids::uuid session_id;
42 std::chrono::system_clock::time_point start_time;
43 std::string server_address;
44 std::uint16_t protocol_version_major;
45 std::uint16_t protocol_version_minor;
53 std::int64_t timestamp_offset_us;
63 std::vector<recorded_frame> frames;
75 inline static std::string_view logger_name =
"ores.comms.analyser.domain.session_reader";
79 static auto instance = make_logger(logger_name);
90 static std::expected<session_data, comms::recording::session_file_error>
91 read(
const std::filesystem::path& file_path);
101 static std::expected<session_metadata, comms::recording::session_file_error>
109 read_header(std::ifstream& file);
114 static std::expected<recorded_frame, comms::recording::session_file_error>
115 read_frame_record(std::ifstream& file);
compression_type
Compression algorithm used for payload compression.
Definition message_types.hpp:259
Domain types for session analysis.
Definition ores.comms.analyser.domain.hpp:28
session_file_error
Error codes for session file operations.
Definition session_file.hpp:119
frame_direction
Direction of a recorded frame.
Definition session_file.hpp:50
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Metadata about a recorded session.
Definition session_reader.hpp:40
A single recorded frame with metadata.
Definition session_reader.hpp:52
Complete session data including metadata and frames.
Definition session_reader.hpp:61
Reads and parses ORES session recording files.
Definition session_reader.hpp:73
static std::expected< session_metadata, comms::recording::session_file_error > read_metadata(const std::filesystem::path &file_path)
Read only the session metadata (header).
Definition session_reader.cpp:82
static std::expected< session_data, comms::recording::session_file_error > read(const std::filesystem::path &file_path)
Read a complete session file.
Definition session_reader.cpp:35
Complete frame with header and payload.
Definition frame.hpp:77