MADARA
3.4.1
|
Implementation of BaseStreamer which writes updates to a Madara checkpoint file. More...
#include <CheckpointStreamer.h>
Public Member Functions | |
CheckpointStreamer (CheckpointSettings settings, KnowledgeBase &kb, double write_hertz=10) | |
Constructor. More... | |
CheckpointStreamer (CheckpointSettings settings, ThreadSafeContext &context, double write_hertz=10) | |
Constructor. More... | |
CheckpointStreamer (CheckpointStreamer &&)=delete | |
CheckpointStreamer (const CheckpointStreamer &)=delete | |
~CheckpointStreamer () override | |
void | enqueue (std::string name, KnowledgeRecord record) override |
Implementation of BaseStreamer::enqueue, which stores the given parameters in an in-memory buffer, for later write to disk. More... | |
CheckpointStreamer & | operator= (CheckpointStreamer &&)=delete |
CheckpointStreamer & | operator= (const CheckpointStreamer &)=delete |
Private Types | |
using | pair_type = std::pair< std::string, KnowledgeRecord > |
Private Member Functions | |
void | terminate () |
Static Private Member Functions | |
static void | thread_main (CheckpointStreamer *self) |
Private Attributes | |
ThreadSafeContext * | context_ |
std::vector< pair_type > | in_buffer |
std::atomic_flag | keep_running_ |
std::vector< pair_type > | out_buffer |
CheckpointSettings | settings_ |
std::thread | thread_ |
double | write_hertz_ = 10 |
Implementation of BaseStreamer which writes updates to a Madara checkpoint file.
Updates are kept in an in-memory buffer, and written to disk at the hertz rate specified in the constructor.
Definition at line 32 of file CheckpointStreamer.h.
|
private |
Definition at line 100 of file CheckpointStreamer.h.
|
inline |
Constructor.
settings | the CheckpointSettings used in calls to ThreadSafeContext::save_checkpoint. The variables_lister and reset_checkpoint fields given are ignored. |
context | ThreadSafeContext this object is attached to. This context will be locked for a short time each period. |
write_hertz | hertz rate for periodic write to disk. |
Definition at line 45 of file CheckpointStreamer.h.
|
inline |
Constructor.
settings | the CheckpointSettings used in calls to ThreadSafeContext::save_checkpoint. The variables_lister and reset_checkpoint fields given are ignored. |
kb | KnoweldgeBase this object is attached to. This KnoweldgeBase will be locked for a short time each period. |
write_hertz | hertz rate for periodic write to disk. |
Definition at line 64 of file CheckpointStreamer.h.
|
delete |
|
delete |
|
override |
Definition at line 113 of file CheckpointStreamer.cpp.
|
overridevirtual |
Implementation of BaseStreamer::enqueue, which stores the given parameters in an in-memory buffer, for later write to disk.
Implements madara::knowledge::BaseStreamer.
Definition at line 22 of file CheckpointStreamer.cpp.
|
delete |
|
delete |
|
inlineprivate |
Definition at line 88 of file CheckpointStreamer.h.
|
staticprivate |
Definition at line 69 of file CheckpointStreamer.cpp.
|
private |
Definition at line 98 of file CheckpointStreamer.h.
|
private |
Definition at line 102 of file CheckpointStreamer.h.
|
private |
Definition at line 107 of file CheckpointStreamer.h.
|
private |
Definition at line 103 of file CheckpointStreamer.h.
|
private |
Definition at line 97 of file CheckpointStreamer.h.
|
private |
Definition at line 108 of file CheckpointStreamer.h.
|
private |
Definition at line 105 of file CheckpointStreamer.h.