ModelSpace
Documentation for ModelSpace models and classes.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
modelspace::LogManager Class Reference

Class to manage logs. More...

#include <LogManager.h>

Inheritance diagram for modelspace::LogManager:

Public Member Functions

 LogManager (SimulationExecutive &executive)
 Constructor for the log manager. More...
 
 ~LogManager ()
 Destructor for the log manager. Frees memory allocated internally to logging events and monitors. More...
 
void addLog (clockwerk::SimLogger &log, const clockwerk::Time &rate)
 Overloaded function to register and set up a logger. More...
 
void addLog (clockwerk::SimLogger &log, unsigned int rate)
 Overloaded function to register and set up a logger. More...
 
void outDir (const std::string &directory)
 Function to set output directory for all logs. More...
 
std::string outDir ()
 
- Public Member Functions inherited from clockwerk::GraphTreeObject
 GraphTreeObject (const char *gt_nme="", GraphTreeObject **storage_array=nullptr, uint32 storage_size=0)
 Name-based constructor for GraphTreeObject which will have no children by default. More...
 
virtual ~GraphTreeObject ()
 Destructor. More...
 
GraphTreeObjectparent ()
 Functions to get object's parent/children. More...
 
GraphTreeObject ** children ()
 
GraphTreeObjectchildAtIndex (uint8 i) const
 
int16 parent (GraphTreeObject *new_parent)
 Function to assign the node's parent via pointer. More...
 
int16 parent (GraphTreeObject &new_parent)
 Function to assign the node's parent via reference. More...
 
uint8 nChildren () const
 Getters for number of children and descendants. More...
 
uint16 nDescendants () const
 
uint8 capacity () const
 
const char * name () const
 Getter and setter for object name. More...
 
int16 name (const char *new_name)
 
uint8 rank ()
 Getter for the object rank. More...
 
int8 type ()
 Function to indicate type – -1 by default unless implemented downstream. More...
 
bool loggable ()
 Getter for object logability flag – note no setter because should only be set by this or a derived class in its definition. More...
 
GraphTreeObjectgetRootDataPointer ()
 Get the pointer to the highest object in the graph tree. More...
 
virtual int16 str (char *output, size_t size) const
 Get object represented as string. More...
 
virtual int16 fromStr (const char *val)
 Set value of graphtreeobject from string. More...
 

Protected Attributes

std::string _output_directory = ""
 Output directory. More...
 
std::vector< LogEvent * > _log_events
 List of logging events. More...
 
SimulationExecutiveexc
 Handle to simulation executive for configuring monitors. More...
 
std::vector< RateMonitor * > _monitors
 List of rate monitors established in the log manager. More...
 
- Protected Attributes inherited from clockwerk::GraphTreeObject
GraphTreeObject_parent = nullptr
 
GraphTreeObject ** _children_ptr = nullptr
 
uint32 _max_num_children = 0
 
uint16 _num_descendants = 0
 
char _name [MAXIMUM_NAME_CHARS] = ""
 String name for object. More...
 
uint8 _num_children = 0
 Number of direct children of the tree (not including the tree itself) More...
 
uint8 _rank = 0
 
int8 _graph_tree_type = BASE_GRAPH_TREE
 Variable to store graph tree object type. More...
 
bool _loggable = false
 Variable to indicate whether the selected object is loggable. Set to false by default. More...
 
uint32 _index = 0
 Index pointing to the next write location for the graph tree children. More...
 

Additional Inherited Members

- Protected Member Functions inherited from clockwerk::GraphTreeObject
int16 _setStorage (GraphTreeObject **storage_array, uint8 storage_size)
 Getter for object's string address. More...
 
void _recalculateDescendants ()
 Function to recursively re-calculate the number of descendants of a given node on the tree. More...
 
void _recalculateRank ()
 Function to recursively re-calculate the rank of a given node on the tree. More...
 
int16 _addChild (GraphTreeObject *child)
 Function to decompose a string into a series of substrings via indexing. More...
 
int16 _removeChild (GraphTreeObject *child)
 Function to remove a child from the graph node's children. More...
 

Detailed Description

Class to manage logs.

This is the header for the log manager, which is responsible for adding logs to the simulation and ensuring they are executed in accordance with their rate or triggers.

Constructor & Destructor Documentation

◆ LogManager()

modelspace::LogManager::LogManager ( SimulationExecutive executive)

Constructor for the log manager.

◆ ~LogManager()

modelspace::LogManager::~LogManager ( )

Destructor for the log manager. Frees memory allocated internally to logging events and monitors.

Member Function Documentation

◆ addLog() [1/2]

void modelspace::LogManager::addLog ( clockwerk::SimLogger &  log,
const clockwerk::Time rate 
)

Overloaded function to register and set up a logger.

Parameters
logThe logger to add to the sim
rateThe rate, as a Time object, at which the logger should log

◆ addLog() [2/2]

void modelspace::LogManager::addLog ( clockwerk::SimLogger &  log,
unsigned int  rate 
)

Overloaded function to register and set up a logger.

Parameters
logThe logger to add to the sim
rateThe rate, in Hz, at which the logger should log

◆ outDir() [1/2]

std::string modelspace::LogManager::outDir ( )
inline

◆ outDir() [2/2]

void modelspace::LogManager::outDir ( const std::string &  directory)
inline

Function to set output directory for all logs.

Parameters
directoryDirectory to set as base
Note
Can be overwritten if individual log out dir is set

Member Data Documentation

◆ _log_events

std::vector<LogEvent*> modelspace::LogManager::_log_events
protected

List of logging events.

◆ _monitors

std::vector<RateMonitor*> modelspace::LogManager::_monitors
protected

List of rate monitors established in the log manager.

◆ _output_directory

std::string modelspace::LogManager::_output_directory = ""
protected

Output directory.

◆ exc

SimulationExecutive& modelspace::LogManager::exc
protected

Handle to simulation executive for configuring monitors.


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