DataStorageClient.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef DATASTORAGECLIENT_H
  2. #define DATASTORAGECLIENT_H
  3. #include <memory>
  4. #include <string>
  5. namespace MySQL {
  6. class MySQLClient;
  7. } // namespace MySQL
  8. namespace DataStorage {
  9. class DataStorageClientImpl;
  10. class IDataStorageClient
  11. {
  12. public:
  13. virtual ~IDataStorageClient() {}
  14. public:
  15. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, int value) = 0;
  16. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, double value) = 0;
  17. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, const std::string& value) = 0;
  18. virtual void LogValueTimed(int deviceId, const std::string& dataName, int value) = 0;
  19. virtual void LogValueTimed(int deviceId, const std::string& dataName, double value) = 0;
  20. virtual void LogValueTimed(int deviceId, const std::string& dataName, const std::string& value) = 0;
  21. };
  22. class DataStorageClient : public IDataStorageClient
  23. {
  24. public:
  25. DataStorageClient(const std::shared_ptr<MySQL::MySQLClient>& pMySQLClient, const std::string& table);
  26. ~DataStorageClient();
  27. public:
  28. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, int value);
  29. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, double value);
  30. virtual void LogValue(int deviceId, const std::string& dataName, int timestamp, const std::string& value);
  31. virtual void LogValueTimed(int deviceId, const std::string& dataName, int value);
  32. virtual void LogValueTimed(int deviceId, const std::string& dataName, double value);
  33. virtual void LogValueTimed(int deviceId, const std::string& dataName, const std::string& value);
  34. public:
  35. void MetronomeCallback();
  36. private:
  37. std::unique_ptr<DataStorageClientImpl> m_pDataStorageClientImpl;
  38. };
  39. } // namespace DataStorage
  40. #endif // DATASTORAGECLIENT_H