81 using CommitIter = CommitSet::iterator;
86 DataGroup& g,
int id,
void* data,
int count, MPI_Datatype datatype,
87 int depth, std::optional<SerializeFunc> s = {}
101 int elm_count()
const;
104 virtual std::unique_ptr<DataSnapshot> create_snapshot(
105 int size,
int max_count
110 virtual void stage_inplace(
void* buf,
const DataSubset& subset);
111 virtual void stage_begin(FILE** fp);
112 virtual void stage_begin(std::iostream** strm);
113 virtual void stage_end();
114 virtual void load_begin(FILE** fp,
int timestamp,
DataSubset& subset);
115 virtual void load_begin(
116 std::iostream** strm,
int timestamp,
DataSubset& subset
118 virtual void load_end();
120 void* target,
int target_count,
int timestamp,
DataSubset& data_found
127 virtual void repair();
128 virtual void commit(
int timestamp);
129 virtual void snapshot_delete(
int timestamp);
131 void snapshot_delete(CommitIter it);
133 virtual void attr_set(
int attr,
void* value);
134 virtual void attr_get(
int attr,
void* value);
137 virtual bool has_unstored_data();
145 const std::vector<DataSubset>& input, std::vector<DataSubset>& output,
149 std::vector<DataSubset>& subsets,
int root
151 return broadcast_subsets(subsets, subsets, root);
158 void init_snapshots();
160 std::optional<SerializeFunc> ser_func;
163 std::optional<Serializer> open_serializer;
169 std::unique_ptr<DataSnapshot> stage_snapshot_;
172 CommitSet commit_snapshots_;
175 std::vector<std::unique_ptr<DataSnapshot>> avail_snapshots_;
190 int timestamp, std::source_location loc = std::source_location::current()
194 int timestamp, std::source_location loc = std::source_location::current()
199 void cleanup_timestamps(
200 const std::set<
int, std::greater<int>>& valid_timestamps
212 using is_transparent = void;
215 const std::shared_ptr<DataMember>& a,
const std::shared_ptr<DataMember>& b
217 return a->memberid < b->memberid;
220 bool operator()(
const std::shared_ptr<DataMember>& a,
int id)
const {
221 return a->memberid < id;
224 bool operator()(
int id,
const std::shared_ptr<DataMember>& a)
const {
225 return id < a->memberid;