1 #ifndef MADARA_KNOWLEDGE_CHECKPOINT_PLAYER_H
2 #define MADARA_KNOWLEDGE_CHECKPOINT_PLAYER_H
8 #include "madara/MadaraExport.h"
37 : checkpoint_settings(in_checkpoint_settings),
54 std::pair<std::string, KnowledgeRecord> next();
84 return file.is_open();
92 return checkpoint_settings;
101 int64_t total_read = 0;
131 settings_(std::move(settings)),
132 update_settings_(update_settings)
148 update_settings_(update_settings),
149 reader_(utility::mk_unique<CheckpointReader>(std::move(reader)))
173 keep_running_.test_and_set();
175 thread_ = std::thread(thread_main,
this);
183 keep_running_.clear();
184 if (thread_.joinable())
198 bool play_until(uint64_t target_toi);
207 reader_ = utility::mk_unique<CheckpointReader>(settings_);
const ThreadSafeContext * context_
Plays back a checkpoint over time, based on recorded TOI.
void stop()
Stop playback, killing the playback thread.
std::atomic_flag keep_running_
CheckpointPlayer & operator=(CheckpointPlayer &&)=delete
KnowledgeUpdateSettings update_settings_
std::unique_ptr< CheckpointReader > reader_
void start()
Start playback.
CheckpointPlayer(const CheckpointPlayer &)=delete
CheckpointSettings settings_
ThreadSafeContext * context_
CheckpointPlayer(ThreadSafeContext &context, CheckpointReader reader, KnowledgeUpdateSettings update_settings={})
Constructor from CheckpointReader.
CheckpointPlayer & operator=(const CheckpointPlayer &)=delete
CheckpointPlayer(CheckpointPlayer &&)=delete
CheckpointPlayer(ThreadSafeContext &context, CheckpointSettings settings, KnowledgeUpdateSettings update_settings={})
Constructor.
Class for iterating binary checkpoint files.
const FileHeader * get_file_header() const
Get the file header information.
CheckpointSettings & checkpoint_settings
transport::MessageHeader checkpoint_header
const CheckpointSettings & get_checkpoint_settings() const
Returns CheckpointSettings this reader is using.
CheckpointReader(CheckpointSettings &in_checkpoint_settings)
Construct using the given CheckpointSettings.
bool is_open() const
Check if underlying file is open.
utility::ScopedArray< char > buffer
int64_t get_total_read() const
Get total number of bytes read so far during iteration.
Holds settings for checkpoints to load or save.
Settings for applying knowledge updates.
This class stores variables and their values for use by any entity needing state information in a thr...
A multi-threaded logger for logging to one or more destinations.
Provides functions and classes for the distributed knowledge base.
T get(const KnowledgeRecord &kr)
Get the value of a KnowlegeRecord.
Provides knowledge logging services to files and terminals.
MADARA_EXPORT utility::Refcounter< logger::Logger > global_logger
Copyright(c) 2020 Galois.