58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
#ifndef DATASTORAGECLIENT_H
|
|
#define DATASTORAGECLIENT_H
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
|
|
namespace MySQL {
|
|
|
|
class MySQLClient;
|
|
|
|
} // namespace MySQL
|
|
|
|
namespace DataStorage {
|
|
|
|
class DataStorageClientImpl;
|
|
|
|
class IDataStorageClient
|
|
{
|
|
public:
|
|
virtual ~IDataStorageClient() {}
|
|
|
|
public:
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, int value) = 0;
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, double value) = 0;
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, const std::string& value) = 0;
|
|
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, int value) = 0;
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, double value) = 0;
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, const std::string& value) = 0;
|
|
};
|
|
|
|
class DataStorageClient : public IDataStorageClient
|
|
{
|
|
public:
|
|
DataStorageClient(const std::shared_ptr<MySQL::MySQLClient>& pMySQLClient, const std::string& table);
|
|
~DataStorageClient();
|
|
|
|
public:
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, int value);
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, double value);
|
|
virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, const std::string& value);
|
|
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, int value);
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, double value);
|
|
virtual void LogValueTimed(int deviceId, const std::string& dataName, const std::string& value);
|
|
|
|
public:
|
|
void MetronomeCallback();
|
|
|
|
private:
|
|
std::unique_ptr<DataStorageClientImpl> m_pDataStorageClientImpl;
|
|
};
|
|
|
|
} // namespace DataStorage
|
|
|
|
#endif // DATASTORAGECLIENT_H
|