Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

ArchiveManager Class Reference

#include <ArchiveManager.h>

List of all members.

Signals

void archiveError (const QString &message)
void stopped ()

Public Member Functions

void addArchiveStatistics (ArchiveStatisticsHolder *newArchStat)
bool archiveIsLoaded ()
 ArchiveManager (DBInterface *archiveDBInterface, QWidget *archiveWidget)
void deleteArchiveStatistics (unsigned int statID)
bool fastForwardArchive ()
void freezeArchive ()
QString getSimulationStartDateTime ()
void loadArchive (QString name)
bool playArchive ()
bool rewindArchive ()
void setFrameRate (double rate)
void setNetworkMonitors (map< unsigned int, NetworkMonitor * >)
bool stepArchive ()
bool stopArchive ()
void unfreezeArchive ()
bool unloadArchive ()
 ~ArchiveManager ()

Static Public Member Functions

static bool isRunning ()

Protected Member Functions

void run ()

Private Member Functions

 ArchiveManager (const ArchiveManager &)
ArchiveManager operator= (const ArchiveManager &)
void setTimeStep (unsigned int)

Private Attributes

bool archError
DBInterface * archiveDBInterface
bool archiveLoaded
mysqlpp::Query * archiveQuery
mysqlpp::ResUse * archiveResults
QString archiveStartDateTime
mysqlpp::Connection * dbConnection
int elapsedTime_msec
QString networkDataString
map< unsigned int, NetworkMonitor * > networkMonitorMap
NetworkDataXmlHandlernwDataXmlHandler
int originalUpdateInterval_msec
SpikeStreamApplicationspikeStrApp
bool step
bool stop
unsigned int timeStep
int updateInterval_msec
QTime updateTime
QXmlInputSource xmlInput
QXmlSimpleReader xmlReader

Static Private Attributes

static bool archiveRunning = false


Detailed Description

Manages the play back of archives that have been recorded.

Definition at line 44 of file ArchiveManager.h.


Constructor & Destructor Documentation

ArchiveManager::ArchiveManager DBInterface *  archDBInter,
QWidget *  archiveWidget
 

Constructor.

Definition at line 43 of file ArchiveManager.cpp.

References archiveDBInterface, archiveLoaded, archiveQuery, dbConnection, elapsedTime_msec, networkDataString, nwDataXmlHandler, spikeStrApp, SpikeStreamMainWindow::spikeStreamApplication, step, stop, timeStep, updateInterval_msec, updateTime, and xmlReader.

ArchiveManager::~ArchiveManager  ) 
 

Destructor.

Definition at line 79 of file ArchiveManager.cpp.

References archiveQuery, dbConnection, and nwDataXmlHandler.

ArchiveManager::ArchiveManager const ArchiveManager  )  [private]
 

Declare copy constructor private so it cannot be used inadvertently.


Member Function Documentation

void ArchiveManager::addArchiveStatistics ArchiveStatisticsHolder newArchStat  ) 
 

Passes the new statistics on to the network data xml handler.

Definition at line 98 of file ArchiveManager.cpp.

References NetworkDataXmlHandler::addArchiveStatistics(), and nwDataXmlHandler.

Referenced by ArchiveWidget::addArchiveStatistics().

void ArchiveManager::archiveError const QString &  message  )  [signal]
 

Referenced by fastForwardArchive(), playArchive(), rewindArchive(), run(), and stepArchive().

bool ArchiveManager::archiveIsLoaded  ) 
 

Returns true if archive is loaded.

Definition at line 104 of file ArchiveManager.cpp.

References archiveLoaded.

Referenced by ArchiveWidget::addStatsButtonClicked(), ArchiveWidget::archiveNameChanged(), ArchiveWidget::unfreezeArchive(), and ArchiveWidget::~ArchiveWidget().

void ArchiveManager::deleteArchiveStatistics unsigned int  statID  ) 
 

Deletes the archive statistics from the network data xml handler using the statistic's id.

Definition at line 111 of file ArchiveManager.cpp.

References NetworkDataXmlHandler::deleteArchiveStatistics(), and nwDataXmlHandler.

Referenced by ArchiveWidget::deleteArchiveStatistics().

bool ArchiveManager::fastForwardArchive  ) 
 

Fast forwards archive by csetting the update interval very small.

Definition at line 117 of file ArchiveManager.cpp.

References archError, archiveError(), archiveLoaded, archiveRunning, SpikeStreamMainWindow::spikeStreamApplication, stop, and updateInterval_msec.

Referenced by ArchiveWidget::fastForwardButtonToggled().

void ArchiveManager::freezeArchive  ) 
 

Used when deleting an archive. This interferes with the resUse of the archiveManager, which has to be deleted and reinitialised after the deletion of the archive is complete.

Definition at line 138 of file ArchiveManager.cpp.

References archiveLoaded, and archiveResults.

Referenced by ArchiveWidget::freezeArchive().

QString ArchiveManager::getSimulationStartDateTime  ) 
 

Used to display the start date time of the currently loaded archive.

Definition at line 148 of file ArchiveManager.cpp.

References archiveStartDateTime.

Referenced by ArchiveWidget::unfreezeArchive().

bool ArchiveManager::isRunning  )  [static]
 

Returns true if the archive is running.

Definition at line 154 of file ArchiveManager.cpp.

References archiveRunning.

Referenced by SpikeStreamMainWindow::clearDatabases(), SpikeStreamMainWindow::importConnectionMatrix(), SpikeStreamMainWindow::loadDatabases(), ArchiveWidget::unloadArchive(), and SpikeStreamMainWindow::~SpikeStreamMainWindow().

void ArchiveManager::loadArchive QString  startDateTime  ) 
 

Load an archive ready for playing back. Exception handling for this operation is carried out by ArchiveWidget.

Definition at line 161 of file ArchiveManager.cpp.

References archError, archiveDBInterface, archiveLoaded, archiveQuery, archiveResults, archiveStartDateTime, dbConnection, nwDataXmlHandler, NetworkDataXmlHandler::resetStatistics(), and unloadArchive().

Referenced by ArchiveWidget::loadArchive(), and rewindArchive().

ArchiveManager ArchiveManager::operator= const ArchiveManager  )  [private]
 

Declare assignment private so it cannot be used inadvertently.

bool ArchiveManager::playArchive  ) 
 

Plays back archive.

Definition at line 188 of file ArchiveManager.cpp.

References archError, archiveError(), archiveLoaded, archiveRunning, originalUpdateInterval_msec, SpikeStreamMainWindow::spikeStreamApplication, stop, and updateInterval_msec.

Referenced by ArchiveWidget::playButtonToggled().

bool ArchiveManager::rewindArchive  ) 
 

Rewinds archive to the beginning.

Definition at line 207 of file ArchiveManager.cpp.

References archError, archiveError(), archiveStartDateTime, loadArchive(), SpikeStreamMainWindow::spikeStreamApplication, and stop.

Referenced by ArchiveWidget::rewindButtonPressed().

void ArchiveManager::run  )  [protected]
 

Thread run method is used when playing back a simulation.

Definition at line 301 of file ArchiveManager.cpp.

References archError, archiveError(), archiveResults, archiveRunning, elapsedTime_msec, NetworkDataXmlHandler::getParseError(), NetworkDataXmlHandler::getParseErrorString(), networkDataString, nwDataXmlHandler, originalUpdateInterval_msec, setTimeStep(), SpikeStreamMainWindow::spikeStreamApplication, step, stop, stopped(), timeStep, updateInterval_msec, updateTime, xmlInput, and xmlReader.

void ArchiveManager::setFrameRate double  rate  ) 
 

Sets the update interval based on the frame rate.

Definition at line 226 of file ArchiveManager.cpp.

References originalUpdateInterval_msec, and updateInterval_msec.

Referenced by ArchiveWidget::frameRateComboChanged(), and ArchiveWidget::loadArchive().

void ArchiveManager::setNetworkMonitors map< unsigned int, NetworkMonitor * >  nwMonMap  ) 
 

Sets the network monitors so that archived spike data can be passed to them.

Definition at line 234 of file ArchiveManager.cpp.

References networkMonitorMap, nwDataXmlHandler, and NetworkDataXmlHandler::setNetworkMonitors().

Referenced by MonitorArea::connectToManager().

void ArchiveManager::setTimeStep unsigned int  timeStep  )  [private]
 

Sets the time step in the network monitors.

Definition at line 410 of file ArchiveManager.cpp.

References networkMonitorMap.

Referenced by run().

bool ArchiveManager::stepArchive  ) 
 

Advances the archive playback by 1 step. Playback is automatically stopped after the step.

Definition at line 242 of file ArchiveManager.cpp.

References archError, archiveError(), archiveLoaded, archiveRunning, SpikeStreamMainWindow::spikeStreamApplication, step, stop, and updateInterval_msec.

Referenced by ArchiveWidget::stepButtonPressed().

bool ArchiveManager::stopArchive  ) 
 

Stops archive playback.

Definition at line 262 of file ArchiveManager.cpp.

References stop.

Referenced by ArchiveWidget::fastForwardButtonToggled(), ArchiveWidget::playButtonToggled(), ArchiveWidget::stopButtonPressed(), and SpikeStreamMainWindow::~SpikeStreamMainWindow().

void ArchiveManager::stopped  )  [signal]
 

Referenced by run().

void ArchiveManager::unfreezeArchive  ) 
 

Used when deleting an archive. This interferes with the resUse of the archiveManager, which has to be deleted and reinitialised after the deletion of the archive is complete.

Definition at line 276 of file ArchiveManager.cpp.

References archiveDBInterface, archiveQuery, archiveResults, archiveStartDateTime, dbConnection, and timeStep.

Referenced by ArchiveWidget::unfreezeArchive().

bool ArchiveManager::unloadArchive  ) 
 

Frees up query object so another resUse can access it.

Definition at line 286 of file ArchiveManager.cpp.

References archiveLoaded, and archiveResults.

Referenced by ArchiveWidget::loadArchive(), loadArchive(), and ArchiveWidget::unloadArchive().


Member Data Documentation

bool ArchiveManager::archError [private]
 

Set to true when there is an error in the archive. Reset when a new archive is loaded.

Definition at line 131 of file ArchiveManager.h.

Referenced by fastForwardArchive(), loadArchive(), playArchive(), rewindArchive(), run(), and stepArchive().

DBInterface* ArchiveManager::archiveDBInterface [private]
 

Reference to database used by archive manager.

Definition at line 81 of file ArchiveManager.h.

Referenced by ArchiveManager(), loadArchive(), and unfreezeArchive().

bool ArchiveManager::archiveLoaded [private]
 

Records whether an archive is loaded and therefore can be played.

Definition at line 118 of file ArchiveManager.h.

Referenced by archiveIsLoaded(), ArchiveManager(), fastForwardArchive(), freezeArchive(), loadArchive(), playArchive(), stepArchive(), and unloadArchive().

mysqlpp::Query* ArchiveManager::archiveQuery [private]
 

Query is held open as archive is playing.

Definition at line 84 of file ArchiveManager.h.

Referenced by ArchiveManager(), loadArchive(), unfreezeArchive(), and ~ArchiveManager().

mysqlpp::ResUse* ArchiveManager::archiveResults [private]
 

Results is held open as archive is playing.

Definition at line 90 of file ArchiveManager.h.

Referenced by freezeArchive(), loadArchive(), run(), unfreezeArchive(), and unloadArchive().

bool ArchiveManager::archiveRunning = false [static, private]
 

Records whether the archive is currently playing. Static so that it can be accessed by other classes. There will only ever be one archive running at a time.

Definition at line 112 of file ArchiveManager.h.

Referenced by fastForwardArchive(), isRunning(), playArchive(), run(), and stepArchive().

QString ArchiveManager::archiveStartDateTime [private]
 

Stores the startDateTime for the currently loaded archive.

Definition at line 105 of file ArchiveManager.h.

Referenced by getSimulationStartDateTime(), loadArchive(), rewindArchive(), and unfreezeArchive().

mysqlpp::Connection* ArchiveManager::dbConnection [private]
 

The connection used for archive queries by this class.

Definition at line 87 of file ArchiveManager.h.

Referenced by ArchiveManager(), loadArchive(), unfreezeArchive(), and ~ArchiveManager().

int ArchiveManager::elapsedTime_msec [private]
 

Definition at line 136 of file ArchiveManager.h.

Referenced by ArchiveManager(), and run().

QString ArchiveManager::networkDataString [private]
 

Definition at line 135 of file ArchiveManager.h.

Referenced by ArchiveManager(), and run().

map<unsigned int, NetworkMonitor*> ArchiveManager::networkMonitorMap [private]
 

Links neuronGrpIDs to network monitors that are running in this process.

Definition at line 102 of file ArchiveManager.h.

Referenced by setNetworkMonitors(), and setTimeStep().

NetworkDataXmlHandler* ArchiveManager::nwDataXmlHandler [private]
 

Definition at line 95 of file ArchiveManager.h.

Referenced by addArchiveStatistics(), ArchiveManager(), deleteArchiveStatistics(), loadArchive(), run(), setNetworkMonitors(), and ~ArchiveManager().

int ArchiveManager::originalUpdateInterval_msec [private]
 

Variable to hold the update interval in step mode.

Definition at line 127 of file ArchiveManager.h.

Referenced by playArchive(), run(), and setFrameRate().

SpikeStreamApplication* ArchiveManager::spikeStrApp [private]
 

Short version of the reference to the main application to enable updating of events. Used during loading.

Definition at line 99 of file ArchiveManager.h.

Referenced by ArchiveManager().

bool ArchiveManager::step [private]
 

Records whether the archive is in step mode.

Definition at line 115 of file ArchiveManager.h.

Referenced by ArchiveManager(), run(), and stepArchive().

bool ArchiveManager::stop [private]
 

Set to true to stop the thread running.

Definition at line 108 of file ArchiveManager.h.

Referenced by ArchiveManager(), fastForwardArchive(), playArchive(), rewindArchive(), run(), stepArchive(), and stopArchive().

unsigned int ArchiveManager::timeStep [private]
 

Definition at line 137 of file ArchiveManager.h.

Referenced by ArchiveManager(), run(), and unfreezeArchive().

int ArchiveManager::updateInterval_msec [private]
 

The interval in between updates to the network monitors.

Definition at line 124 of file ArchiveManager.h.

Referenced by ArchiveManager(), fastForwardArchive(), playArchive(), run(), setFrameRate(), and stepArchive().

QTime ArchiveManager::updateTime [private]
 

Records the last time the network monitors were updated.

Definition at line 121 of file ArchiveManager.h.

Referenced by ArchiveManager(), and run().

QXmlInputSource ArchiveManager::xmlInput [private]
 

Definition at line 93 of file ArchiveManager.h.

Referenced by run().

QXmlSimpleReader ArchiveManager::xmlReader [private]
 

Definition at line 94 of file ArchiveManager.h.

Referenced by ArchiveManager(), and run().


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 22:29:05 2007 for SpikeStream Application by  doxygen 1.4.4