14#ifndef SST_CORE_TIMELORD_H
15#define SST_CORE_TIMELORD_H
17#include "sst/core/sst_types.h"
18#include "sst/core/threadsafe.h"
19#include "sst/core/unitAlgebra.h"
25extern int main(
int argc,
char** argv);
41 using TimeConverterMap_t = std::map<SimTime_t, TimeConverter*>;
42 using StringToTCMap_t = std::map<std::string, TimeConverter*>;
79 SimTime_t
getSimCycles(
const std::string& timeString,
const std::string& where);
82 friend class SST::Simulation;
87 friend int ::main(
int argc,
char** argv);
89 void init(
const std::string& timeBaseString);
100 TimeLord(
const TimeLord&) =
delete;
101 TimeLord& operator=(
const TimeLord&) =
delete;
104 std::recursive_mutex slock;
106 std::string timeBaseString;
107 TimeConverterMap_t tcMap;
108 UnitAlgebra timeBase;
111 StringToTCMap_t parseCache;
114 TimeConverter* micro;
115 TimeConverter* milli;
Main component object for the simulation.
Definition baseComponent.h:62
Link between two components.
Definition link.h:55
Main control class for a SST Simulation.
Definition simulation_impl.h:87
A class to convert between a component's view of time and the core's view of time.
Definition timeConverter.h:28
Class for creating and managing TimeConverter objects.
Definition timeLord.h:40
TimeConverter * getNano()
Definition timeLord.h:70
TimeConverter * getMicro()
Definition timeLord.h:72
TimeConverter * getTimeConverter(const std::string &ts)
Create a new TimeConverter object using specified SI Units.
Definition timeLord.cc:33
SimTime_t getSimCycles(const std::string &timeString, const std::string &where)
Not a Public API.
Definition timeLord.cc:166
TimeConverter * getMilli()
Definition timeLord.h:74
UnitAlgebra getTimeBase() const
Definition timeLord.h:67
Performs Unit math in full precision.
Definition unitAlgebra.h:107