7#include "SenderConfigs.h"
13 #define RL_API __declspec(dllexport)
15 #define RL_API __declspec(dllimport)
26enum Replay {NONE = 0, ALL = 1, SEQUENTIAL = 2, RANDOM = 4};
38 virtual void publish(
size_t point,
const std::string & name,
const std::string & value,
const std::optional<std::string> & unit) = 0;
39 virtual void point_ready(
size_t ) {}
57 void publish(
size_t,
const std::string &,
const std::string &,
const std::optional<std::string> &)
override {}
65 void publish(
size_t point,
const std::string & name,
const std::string & value,
const std::optional<std::string> & unit)
override;
81 std::optional<double> counting_time{std::nullopt};
85 bool random_order{
false};
88 std::string default_address{
"127.0.0.1"};
89 int default_port{9000};
91 size_t chunk_size{65536};
92 std::optional<ReplaySubset> subset{std::nullopt};
95 double pulse_rate{14.0};
107 size_t pulses_per_point{0};
110 const std::atomic<bool> * stop{
nullptr};
129RL_API
bool replay(
const std::string & filename,
const ReplayConfig & config);
138RL_API
void replay_all(
const std::string & filename,
const std::string & address,
int port,
int control);
150RL_API
void replay_subset(
const std::string & filename,
const std::string & address,
int port,
size_t first,
size_t number,
size_t every,
int control);
Receives the per-point instrument parameter values as replay steps through a file.
virtual void pulse_ready(size_t, uint64_t)
The point's pulse has begun, at pulse_ns nanoseconds since the epoch.
Explicit EFU endpoint configuration for replay, parsed from JSON.
Prints "point N: name = value [unit]" lines to the provided stream.
Restrict replay to stored readouts with global index first + k * every, for k in [0,...