123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #pragma once
- #include <memory>
- #include <string>
- #include "Device.Mediator.hpp"
- #ifdef DIOSLOGICDEVICE_EXPORTS
- #define _DIOSLogicDevice_API __declspec(dllexport)
- #else
- #define _DIOSLogicDevice_API __declspec(dllimport)
- #endif
- namespace DIOS
- {
- namespace Dev
- {
- class Mediator;
- //-----------------------------------------------------------------------------
- // LogicDevice
- // The root / base class for any LogicDevice
- //-----------------------------------------------------------------------------
- class _DIOSLogicDevice_API LogicDevice
- {
- public:
- LogicDevice ();
- virtual ~LogicDevice ();
- virtual std::string GetGUID () const = 0;
- };
- //-----------------------------------------------------------------------------
- // LogicDeviceManager
- // The manager for LogicDevice
- //-----------------------------------------------------------------------------
- class _DIOSLogicDevice_API LogicDeviceManager
- {
- public:
- LogicDeviceManager ();
- virtual ~LogicDeviceManager ();
- public:
- virtual unsigned long GetVersion ();
- virtual std::string GetVersionString ();
- virtual void Prepare (std::shared_ptr <Mediator> Med);
- //< DIOS 运行环境将调用如下 API
- virtual bool DriverEntry (std::string CfgFileName);
- virtual std::string Driver_Probe () = 0;
- virtual std::string GetGUID () const = 0;
- virtual std::string GetDriverResource () = 0;
- virtual std::string Device_Probe () = 0;
- virtual bool OnHeartBeat ();
- //>
- // Connect () 返回值的定义, 待定 !!!
- virtual int Connect ();
- virtual void Disconnect ();
- virtual bool isConnected () const;
- virtual DWORD CreateDevice () = 0;
- virtual void UnloadDevice (DWORD ID);
- protected:
- std::shared_ptr <Mediator> m_Mediator;
- protected:
- std::unique_ptr <LogicDevice> m_LogicDevice;
- std::string m_ConfigFileName;
- };
- }
- }
|