50 lines
1.2 KiB
C++
Executable File
50 lines
1.2 KiB
C++
Executable File
/**
|
|
* DbReader for SituationReplay
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
#pragma once
|
|
|
|
#include <PluginInterfaces/record_replay_plugin.h>
|
|
|
|
#include "logger.h"
|
|
|
|
class QSqlDatabase;
|
|
class NSqlQuery;
|
|
namespace LtsPluginManager
|
|
{
|
|
struct PluginInstance;
|
|
}
|
|
namespace SituationReplay
|
|
{
|
|
|
|
class DbReader final
|
|
{
|
|
public:
|
|
explicit DbReader(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector,
|
|
int exerciseId,
|
|
bool bCanHandleSchemas);
|
|
~DbReader();
|
|
|
|
bool init(const QSqlDatabase &db);
|
|
|
|
bool setReplayStartTime(qint64 startTime);
|
|
bool readData(qint64 fromTime, qint64 toTime);
|
|
void publish(qint64 desiredTime);
|
|
void waitForAsyncOperations(qint64 desiredTime);
|
|
void clearData();
|
|
private:
|
|
bool loadPlugin(const LtsPluginManager::PluginInstance &pi);
|
|
private:
|
|
int m_exerciseId;
|
|
NSqlQuery *m_query;
|
|
std::shared_ptr<DDSConnector::DdsConnector> m_ddsConnector;
|
|
bool m_bCanHandleSchemas;
|
|
|
|
std::vector<RecordReplay::RecordReplayPlugin*> m_plugins;
|
|
|
|
LOGGER_T m_logger;
|
|
};
|
|
} // namespace RecordingManagement
|