Class time_series::MultiprocessTimeSeries¶
-
template<typename
T
= int>
classtime_series
::
MultiprocessTimeSeries
: public internal::TimeSeriesBase<internal::MultiProcesses, T>¶ Multiprocess Time Series.
Several instances hosted by different processes, if pointing to the same shared memory segment (as specified by the segment_id), may read/write from the same underlying time series.
Public Functions
-
MultiprocessTimeSeries
(std::string segment_id, size_t max_length, bool leader = true, Index start_timeindex = 0)¶ create a new instance pointing to the specified shared memory segment
- Parameters
segment_id
: the id of the segment to point tomax_length
: max number of elements in the time seriesleader
: if true, the shared memory segment will initialize the shared time series, and wiped the related shared memory on destruction. Instantiating a first MultiprocessTimeSeries with leader set to false will result in undefined behavior. When the leader instance is destroyed, other instances are pointing to the shared segment may crash or hang.
-
MultiprocessTimeSeries
(MultiprocessTimeSeries<T> &&other) noexcept¶
Public Static Functions
-
size_t
get_max_length
(const std::string &segment_id)¶ returns the max length used by a leading MultiprocessTimeSeries of the corresponding segment_id
-
Index
get_start_timeindex
(const std::string &segment_id)¶ returns the start index used by a leading MultiprocessTimeSeries of the corresponding segment_id
-
MultiprocessTimeSeries<T>
create_leader
(const std::string &segment_id, size_t max_length, Index start_timeindex = 0)¶ returns a leader instance of MultiprocessTimeSeries<T>
- Parameters
segment_id
: the id of the segment to point tomax_length
: max number of elements in the time series
-
std::shared_ptr<MultiprocessTimeSeries<T>>
create_leader_ptr
(const std::string &segment_id, size_t max_length, Index start_timeindex = 0)¶ same as create_leader but returning a shared_ptr.
-
MultiprocessTimeSeries<T>
create_follower
(const std::string &segment_id)¶ returns a follower instance of MultiprocessTimeSeries<T>.
An follower instance should be created only if a leader instance has been created first. A std::runtime_error will be thrown otherwise.
- Parameters
segment_id
: the id of the segment to point to
-
std::shared_ptr<MultiprocessTimeSeries<T>>
create_follower_ptr
(const std::string &segment_id)¶ same as create_follower but returning a shared_ptr.
-