#pragma once #include #include "Status.h" #include "IUSBInterface.h" #include #include class IUSBDevice { protected: std::vector> m_interfaces{}; public: virtual ~IUSBDevice() = default; //Open and close the device. virtual Status Open() = 0; virtual void Close() = 0; //Reset the device. virtual void Reset() = 0; //Get the raw reference to interfaces vector. virtual std::vector> &GetInterfaces() { return m_interfaces; } };