VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtVrfDatabaseLoggerInterface Class Referenceabstract

The base class for database loggers. A database logger is responsible for logging database events internally. A database connection (DtVrfDatabaseConnection) then reads these internal events and records them to its connected database.

All event logging should be done by calling the logEvent() funtions. The database connection will read event by calling popEvent().

Please see the class DtVrfDatabaseLogger for the standard VR-Forces implementation of database logging. If not configured, the database logger instantiated will be the DtNullDatabaseLogger, which does nothing. The database logger used can be configured in appData/settings/databaseConfig.mtl.

Inheritance diagram for DtVrfDatabaseLoggerInterface:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtVrfDatabaseLoggerInterface ()
 
virtual void initialize (const DtRwDatabaseLoggerConfig &config, const DtSimulationAddress &simAddress, std::unique_ptr< DtVrfDatabaseConnection > conn)
 
virtual bool isEnabled () const =0
 
virtual bool isEventEnabled (DtVrfDatabaseEvent::EventType eventType) const =0
 
virtual bool logEvent (DtVrfDatabaseEvent::EventType eventType, std::function< DtVrfDatabaseEvent()> f)=0
 
virtual std::unique_ptr
< DtVrfDatabaseEvent
popEvent ()=0
 
virtual void setScenarioLoadInformation (int runId, const DtFilename &scenarioName, DtTime simTime)
 
virtual void setScenarioRunInformation (const DtFilename &scenarioName, DtTime simTime, DtTime dateAndTimeOfDay, DtTime realWorldTime)
 
virtual void setSimTime (double simTime)
 
virtual unsigned queueSize ()
 
virtual void forceDatabaseUpdate ()
 
virtual double resourceThresholdPercentage () const
 
virtual void setResourceThresholdPercentage (double p)
 
virtual bool logEvent (DtVrfDatabaseEvent::EventType eventType, const DtVrfDatabaseEvent &event)=0
 
virtual bool logEvent (DtVrfDatabaseEvent::EventType eventType, DtVrfDatabaseEvent &&event)=0
 
const DtVrfDatabaseConnectiondatabaseConnection () const
 
DtVrfDatabaseConnectiondatabaseConnection ()
 

Protected Member Functions

 DtVrfDatabaseLoggerInterface ()
 

Protected Attributes

double myResourceThresholdPercentage
 
DtSimulationAddress mySimAddress
 
double mySimTime
 
double myDateAndTimeStart
 
double myRealWorldTimeStart
 
bool myScenarioRunInfoSet
 
int myRunId
 
DtString myScenarioName
 
std::unique_ptr
< DtVrfDatabaseConnection
myDatabaseConnection
 

Private Member Functions

 DtVrfDatabaseLoggerInterface (const DtVrfDatabaseLoggerInterface &other)
 
DtVrfDatabaseLoggerInterfaceoperator= (const DtVrfDatabaseLoggerInterface &other)
 

Constructor & Destructor Documentation

virtual DtVrfDatabaseLoggerInterface::~DtVrfDatabaseLoggerInterface ( )
virtual

Destructor.

DtVrfDatabaseLoggerInterface::DtVrfDatabaseLoggerInterface ( )
protected

Constructor.

DtVrfDatabaseLoggerInterface::DtVrfDatabaseLoggerInterface ( const DtVrfDatabaseLoggerInterface other)
private

Copy Constructor not implemented – Do Not copy.

Member Function Documentation

virtual void DtVrfDatabaseLoggerInterface::initialize ( const DtRwDatabaseLoggerConfig config,
const DtSimulationAddress &  simAddress,
std::unique_ptr< DtVrfDatabaseConnection conn 
)
virtual

Reimplemented in DtVrfDatabaseLogger.

virtual bool DtVrfDatabaseLoggerInterface::isEnabled ( ) const
pure virtual

Returns true if database logging is enabled.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual bool DtVrfDatabaseLoggerInterface::isEventEnabled ( DtVrfDatabaseEvent::EventType  eventType) const
pure virtual

Returns true if logging is enabled for the specified event type.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual bool DtVrfDatabaseLoggerInterface::logEvent ( DtVrfDatabaseEvent::EventType  eventType,
const DtVrfDatabaseEvent event 
)
pure virtual

Logs an event to be recorded in the database.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual bool DtVrfDatabaseLoggerInterface::logEvent ( DtVrfDatabaseEvent::EventType  eventType,
DtVrfDatabaseEvent &&  event 
)
pure virtual

Logs an event to be recorded in the database.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual bool DtVrfDatabaseLoggerInterface::logEvent ( DtVrfDatabaseEvent::EventType  eventType,
std::function< DtVrfDatabaseEvent()>  f 
)
pure virtual

Most efficient way to log events in the case logging is disabled. Pass a function or lambda which creates a database event. The function is only called if logging is enabled.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual std::unique_ptr<DtVrfDatabaseEvent> DtVrfDatabaseLoggerInterface::popEvent ( )
pure virtual

Pops the next event from the queue. Logger gives up ownership of the popped event.

Implemented in DtNullDatabaseLogger, and DtVrfDatabaseLogger.

virtual void DtVrfDatabaseLoggerInterface::setScenarioLoadInformation ( int  runId,
const DtFilename &  scenarioName,
DtTime  simTime 
)
virtual

Sets information about the current scenario run at load time.

Reimplemented in DtVrfDatabaseLogger.

virtual void DtVrfDatabaseLoggerInterface::setScenarioRunInformation ( const DtFilename &  scenarioName,
DtTime  simTime,
DtTime  dateAndTimeOfDay,
DtTime  realWorldTime 
)
virtual

Sets information about the current scenario run when run, in case it changed since load.

Reimplemented in DtVrfDatabaseLogger.

virtual void DtVrfDatabaseLoggerInterface::setSimTime ( double  simTime)
virtual

Sets the current sim time. Called every frame.

virtual unsigned DtVrfDatabaseLoggerInterface::queueSize ( )
inlinevirtual

The number of events currently queued to be logged to the database.

Reimplemented in DtVrfDatabaseLogger.

virtual void DtVrfDatabaseLoggerInterface::forceDatabaseUpdate ( )
inlinevirtual

Forces all pending events to be written to the database. Normally it is not necessary to call this.

Reimplemented in DtVrfDatabaseLogger.

const DtVrfDatabaseConnection* DtVrfDatabaseLoggerInterface::databaseConnection ( ) const

Returns the connection for this database logger.

DtVrfDatabaseConnection* DtVrfDatabaseLoggerInterface::databaseConnection ( )

Returns the connection for this database logger.

virtual double DtVrfDatabaseLoggerInterface::resourceThresholdPercentage ( ) const
inlinevirtual

The percentage of full by which a resource value must change before an update is logged.

virtual void DtVrfDatabaseLoggerInterface::setResourceThresholdPercentage ( double  p)
inlinevirtual
DtVrfDatabaseLoggerInterface& DtVrfDatabaseLoggerInterface::operator= ( const DtVrfDatabaseLoggerInterface other)
private

Assignment Operator not implemented – Do Not copy.

Member Data Documentation

double DtVrfDatabaseLoggerInterface::myResourceThresholdPercentage
protected
DtSimulationAddress DtVrfDatabaseLoggerInterface::mySimAddress
protected
double DtVrfDatabaseLoggerInterface::mySimTime
protected
double DtVrfDatabaseLoggerInterface::myDateAndTimeStart
protected
double DtVrfDatabaseLoggerInterface::myRealWorldTimeStart
protected
bool DtVrfDatabaseLoggerInterface::myScenarioRunInfoSet
protected
int DtVrfDatabaseLoggerInterface::myRunId
protected
DtString DtVrfDatabaseLoggerInterface::myScenarioName
protected
std::unique_ptr<DtVrfDatabaseConnection> DtVrfDatabaseLoggerInterface::myDatabaseConnection
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)