#pragma once #include #include "PublisherData.h" #include "ModbusDataInterface.h" #include "modbus_interface_lib.h" #include "ts_queue.h" #include "SystemConfig.h" class PublisherInterface { private: static u_int id_static; protected: const u_int id; const PublisherType type; std::unique_ptr connection; std::unique_ptr modbusData; public: PublisherInterface(const PublisherType type); virtual ~PublisherInterface(){} ts_queue& enqueueReadingRegisters(ts_queue& queue, Category cat); virtual std::string getName()const = 0; bool open(){ return connection->openConnection(); } bool isOpen() const { return connection->getIsOpen(); } u_int getID()const { return id; } //operator overloading inline bool operator==(const PublisherInterface& p2)const; };