6#ifndef CALLBACK_UTILS_CHUNK_HPP
7#define CALLBACK_UTILS_CHUNK_HPP
21 template<
typename AFields>
25 const std::string grp_fname;
33 bool grp_chunk (
size_t chunk_idx, std::string &fname)
const override final
42 template<
typename AFields>
46 const std::string prt_fname;
53 bool prt_chunk (
size_t chunk_idx, std::string &fname)
const override final
62 template<
typename AFields>
66 const std::string grp_fname;
67 const size_t min_idx, max_idx;
75 MultiGrp (
const std::string &grp_fname_,
size_t max_idx_,
size_t min_idx_=0UL) :
76 grp_fname(grp_fname_), min_idx(min_idx_), max_idx(max_idx_)
79 bool grp_chunk (
size_t chunk_idx, std::string &fname)
const override final
81 char buf[grp_fname.size()+10];
82 std::sprintf(buf, grp_fname.c_str(), min_idx+chunk_idx);
83 fname = std::string(buf);
84 return min_idx+chunk_idx <= max_idx;
90 template<
typename AFields>
94 const std::string prt_fname;
95 const size_t min_idx, max_idx;
103 MultiPrt (
const std::string &prt_fname_,
size_t max_idx_,
size_t min_idx_=0UL) :
104 prt_fname(prt_fname_), min_idx(min_idx_), max_idx(max_idx_)
107 bool prt_chunk (
size_t chunk_idx, std::string &fname)
const override final
109 char buf[prt_fname.size()+10];
110 std::sprintf(buf, prt_fname.c_str(), min_idx+chunk_idx);
111 fname = std::string(buf);
112 return min_idx+chunk_idx <= max_idx;
118 template<
typename AFields>
126 const std::string &prt_fname) :
132 template<
typename AFields>
139 Multi (
const std::string &grp_fname,
size_t grp_max_idx,
140 const std::string &prt_fname,
size_t prt_max_idx) :
141 MultiGrp<AFields>(grp_fname, grp_max_idx),
142 MultiPrt<AFields>(prt_fname, prt_max_idx) { }
Contains the abstract base class that the user should subclass from in order to define the desired fu...
there are multiple group chunks.
Definition callback_utils_chunk.hpp:65
MultiGrp(const std::string &grp_fname_, size_t max_idx_, size_t min_idx_=0UL)
Definition callback_utils_chunk.hpp:75
there are multiple particle chunks.
Definition callback_utils_chunk.hpp:93
MultiPrt(const std::string &prt_fname_, size_t max_idx_, size_t min_idx_=0UL)
Definition callback_utils_chunk.hpp:103
there is a single file containing all groups.
Definition callback_utils_chunk.hpp:24
SingleGrp(const std::string &grp_fname_)
Definition callback_utils_chunk.hpp:29
there is a single file containing all particles.
Definition callback_utils_chunk.hpp:45
SinglePrt(const std::string &prt_fname_)
Definition callback_utils_chunk.hpp:50
contains classes that implement parts of the Callback base.
Definition callback_utils.hpp:35
The abstract base class the user should inherit from.
Definition callback.hpp:32
wrapper for the common case that there are multiple group chunks and multiple particle chunks
Definition callback_utils_chunk.hpp:136
Multi(const std::string &grp_fname, size_t grp_max_idx, const std::string &prt_fname, size_t prt_max_idx)
Definition callback_utils_chunk.hpp:139
wrapper for the common case that there is one group chunk and one particle chunk
Definition callback_utils_chunk.hpp:122
Single(const std::string &grp_fname, const std::string &prt_fname)
Definition callback_utils_chunk.hpp:125