Files
DataStorage/include/DataStorageClient.h
T
2022-10-08 16:58:54 +02:00

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