Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
individual_id_tracking_writer.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <filesystem>
6#include <fstream>
7#include <mutex>
8#include <vector>
9
10namespace hgps {
11
21 public:
23
26 explicit IndividualIDTrackingWriter(const std::filesystem::path &base_result_path);
27
32
33 void write(const IndividualTrackingEventMessage &message);
34
35 private:
36 static std::filesystem::path make_tracking_path(const std::filesystem::path &base_result_path);
37 void write_header(const IndividualTrackingEventMessage &message);
38 void write_row(unsigned int run, int time, const std::string &scenario,
39 const IndividualTrackingRow &row,
40 const std::vector<std::string> &risk_factor_columns);
41
42 std::ofstream stream_;
43 std::mutex mutex_;
44 bool header_written_{false};
45 std::vector<std::string> risk_factor_columns_;
46 unsigned int write_count_{0}; // MAHIMA: for periodic flush (every 5 writes)
47};
48
49} // namespace hgps
Definition individual_id_tracking_writer.h:20
IndividualIDTrackingWriter & operator=(IndividualIDTrackingWriter &&)=default
IndividualIDTrackingWriter & operator=(const IndividualIDTrackingWriter &)=delete
IndividualIDTrackingWriter(const IndividualIDTrackingWriter &)=delete
void write(const IndividualTrackingEventMessage &message)
Definition individual_id_tracking_writer.cpp:85
IndividualIDTrackingWriter(IndividualIDTrackingWriter &&)=default
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
Definition individual_tracking_message.h:25
Definition individual_tracking_message.h:13