#pragma once #include #include #include #include class IRegsAccess; class UsbDevice; class INotify; class ITransmit; class IReceive; class UsbService { public: UsbService(std::shared_ptr fgparegs, std::shared_ptr motorregs, std::shared_ptr scannerregs = nullptr); virtual ~UsbService(); std::shared_ptr transmiter(); std::shared_ptr notify(); std::shared_ptr receiver(); void set_onconnect_call(std::function usbhotplugcall); void set_scannerregs(std::shared_ptr scannerregs); private: std::shared_ptr usb; std::shared_ptr fgparegs; std::shared_ptr motorregs; std::shared_ptr devregs; std::shared_ptr transmit; std::shared_ptr noti; std::shared_ptr receiv; std::function m_usbconnect; };