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/timeConverter.h"
20#include "sst/core/unitAlgebra.h"
26extern int main(
int argc,
char** argv);
42 using StringToTCMap_t = std::map<std::string, TimeConverter>;
98 SimTime_t
getSimCycles(
const std::string& timeString,
const std::string& where);
107 friend int ::main(
int argc,
char** argv);
109 void init(
const std::string& timebase_string);
115 SimTime_t getFactorForTime(
const std::string& time);
116 SimTime_t getFactorForTime(
const UnitAlgebra& time);
123 TimeLord(
const TimeLord&) =
delete;
124 TimeLord& operator=(
const TimeLord&) =
delete;
127 std::recursive_mutex slock_;
129 std::string timebase_string_;
131 UnitAlgebra timebase_;
134 StringToTCMap_t parse_cache_;
137 TimeConverter micro_;
138 TimeConverter milli_;
Main component object for the simulation.
Definition baseComponent.h:67
Link between two components.
Definition link.h:57
Main control class for a SST Simulation.
Definition simulation.h:121
A class to convert between a component's view of time and the core's view of time.
Definition timeConverter.h:31
Class for creating and managing TimeConverter objects.
Definition timeLord.h:41
TimeConverter getTimeConverter(const std::string &ts)
Create a new TimeConverter object using specified SI Units.
Definition timeLord.cc:34
TimeConverter getMilli()
Get the TimeConverter representing a millisecond.
Definition timeLord.h:91
TimeConverter getMicro()
Get the TimeConverter representing a microsecond.
Definition timeLord.h:84
TimeConverter getNano()
Get the TimeConverter representing a nanosecond.
Definition timeLord.h:77
SimTime_t getSimCycles(const std::string &timeString, const std::string &where)
Not a Public API.
Definition timeLord.cc:106
UnitAlgebra getTimeBase() const
Get the global TimeBase as a UnitAlgebra.
Definition timeLord.h:70
Performs Unit math in full precision.
Definition unitAlgebra.h:107