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"
10#include "fenix/mpixx/group.hpp"
12namespace fenix::data {
32 std::vector<DataSubset>
51 virtual void init_cohort(MPI_Comm cohort_comm);
55 virtual void reinit_cohort(MPI_Comm cohort_comm);
59 const util::DataRef& source, std::optional<SerializeFunc>& sf,
69 char* data() {
return buf_.data(); }
70 int size()
const {
return buf_.size(); }
71 void resize(
int size) {
buf_.resize(size); }
75 void add_and_fit(
const DataSubset& subset);
79 void set_timestamp(
int ts) {
timestamp_ = ts; }
81 const DataSubset& staged_subset()
const {
86 const DataSubset& protected_subset()
const {
91 util::DataBuffer& buf() {
return buf_; }
93 int elm_size()
const {
return elm_size_; }
94 void set_elm_size(
int size) {
elm_size_ = size; }
101 using is_transparent = void;
104 const std::unique_ptr<DataSnapshot>& a,
105 const std::unique_ptr<DataSnapshot>& b
107 return a->timestamp() < b->timestamp();
110 bool operator()(
const std::unique_ptr<DataSnapshot>& a,
int timestamp)
const {
111 return a->timestamp() < timestamp;
114 bool operator()(
int timestamp,
const std::unique_ptr<DataSnapshot>& a)
const {
115 return timestamp < a->timestamp();
Definition snapshot.hpp:18
util::DataBuffer buf_
Primary checkpoint data buffer.
Definition snapshot.hpp:20
int cohort_rank
This rank's index within the cohort.
Definition snapshot.hpp:28
int elm_size_
Size of each element in bytes.
Definition snapshot.hpp:22
std::vector< DataSubset > protected_subsets
Definition snapshot.hpp:30
int timestamp_
Snapshot version/commit timestamp.
Definition snapshot.hpp:21
int elm_max_count_
Maximum number of elements.
Definition snapshot.hpp:23
std::vector< DataSubset > staged_subsets
Subsets staged by each cohort member (including self)
Definition snapshot.hpp:33
Definition data_ref.hpp:50
Definition serializer.hpp:14
Definition subset.hpp:152
Definition snapshot.hpp:100