Class time_series::MultiprocessTimeSeries¶
-
template<typename T = int>
class time_series::MultiprocessTimeSeries : public internal::TimeSeriesBase<internal::MultiProcesses, int>¶ 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
-
inline 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
- Deprecated:
uses the factory functions create_leader or create_follower
- Parameters
segment_id – the id of the segment to point to
max_length – max number of elements in the time series
leader – 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.
-
inline MultiprocessTimeSeries(MultiprocessTimeSeries<T> &&other) noexcept¶
Public Static Functions
-
static inline size_t get_max_length(const std::string &segment_id)¶
returns the max length used by a leading MultiprocessTimeSeries of the corresponding segment_id
-
static inline Index get_start_timeindex(const std::string &segment_id)¶
returns the start index used by a leading MultiprocessTimeSeries of the corresponding segment_id
-
static inline 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 to
max_length – max number of elements in the time series
-
static inline 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.
-
static inline 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
-
static inline std::shared_ptr<MultiprocessTimeSeries<T>> create_follower_ptr(const std::string &segment_id)¶
same as create_follower but returning a shared_ptr.
-
inline MultiprocessTimeSeries(std::string segment_id, size_t max_length, bool leader = true, Index start_timeindex = 0)¶