30#include <unordered_map>
32#include "neml2/config.h"
35#include "nlohmann/json.hpp"
38#include "neml2/base/OptionSet.h"
43using json = nlohmann::json;
67 const std::string & category,
68 const json & args = {},
69 unsigned int pid = 0);
71 const std::string & category,
72 const json & args = {},
73 unsigned int pid = 0);
75 const std::string & category,
76 const json & args = {},
77 const std::string & scope =
"t",
78 unsigned int pid = 0);
84 void write_event_common(
json & event,
85 const std::string &
name,
86 const std::string & category,
88 const std::string & phase,
91 void dump_event(
const json & event,
bool last =
false);
95 const std::chrono::high_resolution_clock::time_point _epoch;
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:51
Definition TracingInterface.h:114
virtual ~TracingInterface()=default
TracingInterface & operator=(const TracingInterface &)=delete
TracingInterface(std::string)
Definition TracingInterface.cxx:151
TraceWriter & event_trace_writer() const
Get the event trace writer.
Definition TracingInterface.cxx:186
TracingInterface(const TracingInterface &)=default
bool event_tracing_enabled() const
Definition TracingInterface.h:127
static OptionSet expected_options()
Definition TracingInterface.cxx:142
TracingInterface(TracingInterface &&)=default
TracingInterface & operator=(TracingInterface &&)=delete
Definition DiagnosticsInterface.cxx:30
std::unordered_map< std::string, std::unique_ptr< TraceWriter > > & event_trace_writers()
All trace writers.
Definition TracingInterface.cxx:36
std::string name(ElasticConstant p)
Definition ElasticityConverter.cxx:30
nlohmann::json json
Definition TracingInterface.h:43
Definition TracingInterface.h:47
void trace_instant(const std::string &name, const std::string &category, const json &args={}, const std::string &scope="t", unsigned int pid=0)
Definition TracingInterface.cxx:128
void trace_duration_end(const std::string &name, const std::string &category, const json &args={}, unsigned int pid=0)
Definition TracingInterface.cxx:117
std::ofstream out
Output stream for the trace file.
Definition TracingInterface.h:63
const std::string filename
File name.
Definition TracingInterface.h:60
~TraceWriter()
Destructor.
Definition TracingInterface.cxx:62
TraceWriter(const std::filesystem::path &file)
Constructor.
Definition TracingInterface.cxx:42
void trace_duration_begin(const std::string &name, const std::string &category, const json &args={}, unsigned int pid=0)
Definition TracingInterface.cxx:106
TraceWriter(TraceWriter &&)=delete
TraceWriter & operator=(const TraceWriter &)=delete
TraceWriter(const TraceWriter &)=delete
Special methods.
TraceWriter & operator=(TraceWriter &&)=delete