1 #ifndef TRAJ_FILE_READER_H
2 #define TRAJ_FILE_READER_H
4 #include "pteros/core/logging.h"
5 #include "pteros/analysis/options.h"
6 #include "message_channel.h"
7 #include "data_container.h"
12 using DataChannel = MessageChannel<std::shared_ptr<pteros::DataContainer> > ;
13 using DataChannel_ptr = std::shared_ptr<DataChannel> ;
16 class Traj_file_reader {
18 Traj_file_reader(Options& options,
int natoms);
20 bool is_frame_valid(
int fr,
float t);
22 bool is_end_of_interval(
int fr,
float t);
25 void run(
const std::vector<std::string>& traj_files,
const DataChannel_ptr& ch);
31 void reader_thread_body(
const std::vector<std::string>& traj_files,
const DataChannel_ptr &channel);
37 float custom_start_time;
39 int first_frame, last_frame;
40 float first_time, last_time;
45 std::shared_ptr<spdlog::logger> log;
50 #endif // TRAJ_FILE_READER_H