EHS
UsbBase.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/Types.h"
4
5namespace ehs
6{
7 class EHS_LIB_IO UsbBase
8 {
9 private:
10 UInt_32 bus;
11 UInt_32 address;
12
13 public:
14 virtual ~UsbBase() = default;
15
16 UsbBase();
17
18 UsbBase(UInt_32 bus, UInt_32 address);
19
20 UsbBase(UsbBase&& usb) noexcept;
21
22 UsbBase(const UsbBase& usb);
23
24 UsbBase& operator=(UsbBase&& usb) noexcept;
25
26 UsbBase& operator=(const UsbBase& usb);
27
28 virtual void Initialize() = 0;
29
30 virtual void Release() = 0;
31
32 virtual bool IsInitialized() const = 0;
33
34 virtual Size Send(const Byte* data, Size size) = 0;
35
36 void BulkSend(const Byte* data, Size size);
37
38 virtual Size Receive(Byte* data, Size size) = 0;
39
40 void BulkReceive(Byte** data, Size* size);
41
42 UInt_32 GetBus() const;
43
44 UInt_32 GetAddress() const;
45
46 bool IsValid() const;
47 };
48}
Definition: UsbBase.h:8
virtual bool IsInitialized() const =0
virtual Size Send(const Byte *data, Size size)=0
virtual Size Receive(Byte *data, Size size)=0
virtual ~UsbBase()=default
virtual void Release()=0
virtual void Initialize()=0
Definition: Anchor.h:6
unsigned int UInt_32
Definition: Types.h:49
unsigned char Byte
Definition: Types.h:39