SST  14.0.0
StructuralSimulationToolkit
SST::TimeLord Class Reference

Class for creating and managing TimeConverter objects. More...

#include <timeLord.h>

Inheritance diagram for SST::TimeLord:
SST::Core::Serialization::serializable

Public Member Functions

TimeConvertergetTimeConverter (const std::string &ts)
 Create a new TimeConverter object using specified SI Units. More...
 
TimeConvertergetTimeConverter (const UnitAlgebra &ts)
 Create a new TimeConverter object using the specified units. More...
 
UnitAlgebra getTimeBase () const
 
TimeConvertergetNano ()
 
TimeConvertergetMicro ()
 
TimeConvertergetMilli ()
 
SimTime_t getSimCycles (const std::string &timeString, const std::string &where)
 Not a Public API. More...
 
void serialize_order (SST::Core::Serialization::serializer &ser) override
 
friend int ::main (int argc, char **argv)
 
void init (const std::string &timeBaseString)
 
TimeConvertergetTimeConverter (SimTime_t simCycles)
 
 TimeLord (TimeLord const &)
 
void operator= (TimeLord const &)
 
- Public Member Functions inherited from SST::Core::Serialization::serializable
virtual const char * cls_name () const =0
 
virtual uint32_t cls_id () const =0
 
virtual std::string serialization_name () const =0
 

Data Fields

bool initialized
 
std::recursive_mutex slock
 
std::string timeBaseString
 
TimeConverterMap_t tcMap
 
UnitAlgebra timeBase
 
StringToTCMap_t parseCache
 
TimeConverternano
 
TimeConvertermicro
 
TimeConvertermilli
 

Friends

class SST::Link
 

Additional Inherited Members

- Static Public Attributes inherited from SST::Core::Serialization::serializable
static constexpr uint32_t NullClsId = std::numeric_limits<uint32_t>::max()
 
- Protected Types inherited from SST::Core::Serialization::serializable
enum  cxn_flag_t { ConstructorFlag }
 
- Static Protected Member Functions inherited from SST::Core::Serialization::serializable
static void serializable_abort (uint32_t line, const char *file, const char *func, const char *obj)
 

Detailed Description

Class for creating and managing TimeConverter objects.

Member Function Documentation

◆ getMicro()

TimeConverter* SST::TimeLord::getMicro ( )
inline
Returns
TimeConverter which represents Microseconds

Referenced by SST::BaseComponent::getCurrentSimTimeMicro().

◆ getMilli()

TimeConverter* SST::TimeLord::getMilli ( )
inline
Returns
TimeConverter which represents Milliseconds

Referenced by SST::BaseComponent::getCurrentSimTimeMilli().

◆ getNano()

TimeConverter* SST::TimeLord::getNano ( )
inline
Returns
TimeConverter which represents Nanoseconds

Referenced by SST::BaseComponent::getCurrentSimTimeNano().

◆ getSimCycles()

SimTime_t SST::TimeLord::getSimCycles ( const std::string &  timeString,
const std::string &  where 
)

Not a Public API.

Returns the number of raw simulation cycles given by a specified time string

References SST::TimeConverter::getFactor(), and getTimeConverter().

Referenced by SST::Link::addRecvLatency(), SST::Link::addSendLatency(), and SST::Simulation_impl::setStopAtCycle().

◆ getTimeBase()

UnitAlgebra SST::TimeLord::getTimeBase ( ) const
inline

◆ getTimeConverter() [1/2]

TimeConverter * SST::TimeLord::getTimeConverter ( const std::string &  ts)

Create a new TimeConverter object using specified SI Units.

For example, "1 Ghz" (1 Gigahertz), "2.5 ns" (2.5 nanoseconds).

Parameters
tsString indicating the base unit for this object. The string should be a floating point number followed by a prefix, and then frequency (i.e. Hz) or time unit (s). Allowable seconds prefixes are: 'f' (fempto), 'p' (pico), 'n' (nano), 'u' (micro), 'm' (milli). Allowable frequency prefixes are 'k' (kilo), 'M' (mega), and 'G' (giga).

Referenced by SST::BaseComponent::getCurrentSimTime(), SST::Link::getDefaultTimeBase(), getSimCycles(), getTimeConverter(), SST::Simulation_impl::registerClock(), and SST::BaseComponent::registerTimeBase().

◆ getTimeConverter() [2/2]

TimeConverter * SST::TimeLord::getTimeConverter ( const UnitAlgebra ts)

The documentation for this class was generated from the following files: