1#ifndef __FENIX_DATA_SNAPSHOT_HPP__
2#define __FENIX_DATA_SNAPSHOT_HPP__
6#include "fenix/data/util/buffer.hpp"
7#include "fenix/data/util/data_ref.hpp"
8#include "fenix/data/util/serializer.hpp"
9#include "fenix/data/subset.hpp"
11namespace fenix::data {
24 MPI_Group cohort_ = MPI_GROUP_NULL;
31 std::vector<DataSubset>
50 virtual void init_cohort(MPI_Comm cohort_comm);
54 virtual void reinit_cohort(MPI_Comm cohort_comm);
58 const util::DataRef& source, std::optional<SerializeFunc>& sf,
68 char* data() {
return buf_.data(); }
69 int size()
const {
return buf_.size(); }
70 void resize(
int size) {
buf_.resize(size); }
74 void add_and_fit(
const DataSubset& subset);
78 void set_timestamp(
int ts) {
timestamp_ = ts; }
80 const DataSubset& staged_subset()
const {
85 const DataSubset& protected_subset()
const {
90 util::DataBuffer& buf() {
return buf_; }
92 int elm_size()
const {
return elm_size_; }
93 void set_elm_size(
int size) {
elm_size_ = size; }
100 using is_transparent = void;
103 const std::unique_ptr<DataSnapshot>& a,
104 const std::unique_ptr<DataSnapshot>& b
106 return a->timestamp() < b->timestamp();
109 bool operator()(
const std::unique_ptr<DataSnapshot>& a,
int timestamp)
const {
110 return a->timestamp() < timestamp;
113 bool operator()(
int timestamp,
const std::unique_ptr<DataSnapshot>& a)
const {
114 return timestamp < a->timestamp();
Definition snapshot.hpp:17
util::DataBuffer buf_
Primary checkpoint data buffer.
Definition snapshot.hpp:19
int cohort_rank
This rank's index within the cohort.
Definition snapshot.hpp:27
int elm_size_
Size of each element in bytes.
Definition snapshot.hpp:21
std::vector< DataSubset > protected_subsets
Definition snapshot.hpp:29
int timestamp_
Snapshot version/commit timestamp.
Definition snapshot.hpp:20
int elm_max_count_
Maximum number of elements.
Definition snapshot.hpp:22
std::vector< DataSubset > staged_subsets
Subsets staged by each cohort member (including self)
Definition snapshot.hpp:32
Definition data_ref.hpp:50
Definition serializer.hpp:14
Definition subset.hpp:152
Definition snapshot.hpp:99