Skip to content

Commit af9e096

Browse files
committed
Set singleton methods as virtual
This change allows fake classes to override methods during unit testing.
1 parent b6424cf commit af9e096

File tree

6 files changed

+148
-148
lines changed

6 files changed

+148
-148
lines changed

src/local/BLELocalDevice.h

+37-37
Original file line numberDiff line numberDiff line change
@@ -29,60 +29,60 @@ class BLELocalDevice {
2929
BLELocalDevice();
3030
virtual ~BLELocalDevice();
3131

32-
int begin();
33-
void end();
32+
virtual int begin();
33+
virtual void end();
3434

35-
void poll();
36-
void poll(unsigned long timeout);
35+
virtual void poll();
36+
virtual void poll(unsigned long timeout);
3737

38-
bool connected() const;
39-
bool disconnect();
38+
virtual bool connected() const;
39+
virtual bool disconnect();
4040

41-
String address() const;
41+
virtual String address() const;
4242

43-
int rssi();
43+
virtual int rssi();
4444

45-
void setAdvertisedServiceUuid(const char* advertisedServiceUuid);
46-
void setAdvertisedService(const BLEService& service);
47-
void setAdvertisedServiceData(uint16_t uuid, const uint8_t data[], int length);
48-
void setManufacturerData(const uint8_t manufacturerData[], int manufacturerDataLength);
49-
void setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength);
50-
void setLocalName(const char *localName);
45+
virtual void setAdvertisedServiceUuid(const char* advertisedServiceUuid);
46+
virtual void setAdvertisedService(const BLEService& service);
47+
virtual void setAdvertisedServiceData(uint16_t uuid, const uint8_t data[], int length);
48+
virtual void setManufacturerData(const uint8_t manufacturerData[], int manufacturerDataLength);
49+
virtual void setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength);
50+
virtual void setLocalName(const char *localName);
5151

52-
void setAdvertisingData(BLEAdvertisingData& advertisingData);
53-
void setScanResponseData(BLEAdvertisingData& scanResponseData);
52+
virtual void setAdvertisingData(BLEAdvertisingData& advertisingData);
53+
virtual void setScanResponseData(BLEAdvertisingData& scanResponseData);
5454

55-
void setDeviceName(const char* deviceName);
56-
void setAppearance(uint16_t appearance);
55+
virtual void setDeviceName(const char* deviceName);
56+
virtual void setAppearance(uint16_t appearance);
5757

58-
void addService(BLEService& service);
58+
virtual void addService(BLEService& service);
5959

60-
int advertise();
61-
void stopAdvertise();
60+
virtual int advertise();
61+
virtual void stopAdvertise();
6262

63-
int scan(bool withDuplicates = false);
64-
int scanForName(String name, bool withDuplicates = false);
65-
int scanForUuid(String uuid, bool withDuplicates = false);
66-
int scanForAddress(String address, bool withDuplicates = false);
67-
void stopScan();
63+
virtual int scan(bool withDuplicates = false);
64+
virtual int scanForName(String name, bool withDuplicates = false);
65+
virtual int scanForUuid(String uuid, bool withDuplicates = false);
66+
virtual int scanForAddress(String address, bool withDuplicates = false);
67+
virtual void stopScan();
6868

69-
BLEDevice central();
70-
BLEDevice available();
69+
virtual BLEDevice central();
70+
virtual BLEDevice available();
7171

72-
void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
72+
virtual void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
7373

74-
void setAdvertisingInterval(uint16_t advertisingInterval);
75-
void setConnectionInterval(uint16_t minimumConnectionInterval, uint16_t maximumConnectionInterval);
76-
void setConnectable(bool connectable);
74+
virtual void setAdvertisingInterval(uint16_t advertisingInterval);
75+
virtual void setConnectionInterval(uint16_t minimumConnectionInterval, uint16_t maximumConnectionInterval);
76+
virtual void setConnectable(bool connectable);
7777

78-
void setTimeout(unsigned long timeout);
78+
virtual void setTimeout(unsigned long timeout);
7979

80-
void debug(Stream& stream);
81-
void noDebug();
80+
virtual void debug(Stream& stream);
81+
virtual void noDebug();
8282

8383
protected:
84-
BLEAdvertisingData& getAdvertisingData();
85-
BLEAdvertisingData& getScanResponseData();
84+
virtual BLEAdvertisingData& getAdvertisingData();
85+
virtual BLEAdvertisingData& getScanResponseData();
8686

8787
private:
8888
BLEAdvertisingData _advertisingData;

src/utility/ATT.h

+52-52
Original file line numberDiff line numberDiff line change
@@ -41,73 +41,73 @@ class ATTClass {
4141
ATTClass();
4242
virtual ~ATTClass();
4343

44-
void setMaxMtu(uint16_t maxMtu);
45-
void setTimeout(unsigned long timeout);
44+
virtual void setMaxMtu(uint16_t maxMtu);
45+
virtual void setTimeout(unsigned long timeout);
4646

47-
bool connect(uint8_t peerBdaddrType, uint8_t peerBdaddr[6]);
48-
bool disconnect(uint8_t peerBdaddrType, uint8_t peerBdaddr[6]);
49-
bool discoverAttributes(uint8_t peerBdaddrType, uint8_t peerBdaddr[6], const char* serviceUuidFilter);
47+
virtual bool connect(uint8_t peerBdaddrType, uint8_t peerBdaddr[6]);
48+
virtual bool disconnect(uint8_t peerBdaddrType, uint8_t peerBdaddr[6]);
49+
virtual bool discoverAttributes(uint8_t peerBdaddrType, uint8_t peerBdaddr[6], const char* serviceUuidFilter);
5050

51-
void addConnection(uint16_t handle, uint8_t role, uint8_t peerBdaddrType,
51+
virtual void addConnection(uint16_t handle, uint8_t role, uint8_t peerBdaddrType,
5252
uint8_t peerBdaddr[6], uint16_t interval,
5353
uint16_t latency, uint16_t supervisionTimeout,
5454
uint8_t masterClockAccuracy);
5555

56-
void handleData(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
56+
virtual void handleData(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
5757

58-
void removeConnection(uint16_t handle, uint8_t reason);
58+
virtual void removeConnection(uint16_t handle, uint8_t reason);
5959

60-
uint16_t connectionHandle(uint8_t addressType, const uint8_t address[6]) const;
61-
BLERemoteDevice* device(uint8_t addressType, const uint8_t address[6]) const;
62-
bool connected() const;
63-
bool connected(uint8_t addressType, const uint8_t address[6]) const;
64-
bool connected(uint16_t handle) const;
65-
uint16_t mtu(uint16_t handle) const;
60+
virtual uint16_t connectionHandle(uint8_t addressType, const uint8_t address[6]) const;
61+
virtual BLERemoteDevice* device(uint8_t addressType, const uint8_t address[6]) const;
62+
virtual bool connected() const;
63+
virtual bool connected(uint8_t addressType, const uint8_t address[6]) const;
64+
virtual bool connected(uint16_t handle) const;
65+
virtual uint16_t mtu(uint16_t handle) const;
6666

67-
bool disconnect();
67+
virtual bool disconnect();
6868

69-
BLEDevice central();
69+
virtual BLEDevice central();
7070

71-
bool handleNotify(uint16_t handle, const uint8_t* value, int length);
72-
bool handleInd(uint16_t handle, const uint8_t* value, int length);
71+
virtual bool handleNotify(uint16_t handle, const uint8_t* value, int length);
72+
virtual bool handleInd(uint16_t handle, const uint8_t* value, int length);
7373

74-
void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
74+
virtual void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
7575

76-
int readReq(uint16_t connectionHandle, uint16_t handle, uint8_t responseBuffer[]);
77-
int writeReq(uint16_t connectionHandle, uint16_t handle, const uint8_t* data, uint8_t dataLen, uint8_t responseBuffer[]);
78-
void writeCmd(uint16_t connectionHandle, uint16_t handle, const uint8_t* data, uint8_t dataLen);
76+
virtual int readReq(uint16_t connectionHandle, uint16_t handle, uint8_t responseBuffer[]);
77+
virtual int writeReq(uint16_t connectionHandle, uint16_t handle, const uint8_t* data, uint8_t dataLen, uint8_t responseBuffer[]);
78+
virtual void writeCmd(uint16_t connectionHandle, uint16_t handle, const uint8_t* data, uint8_t dataLen);
7979

8080
private:
81-
void error(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
82-
void mtuReq(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
83-
int mtuReq(uint16_t connectionHandle, uint16_t mtu, uint8_t responseBuffer[]);
84-
void mtuResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
85-
void findInfoReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
86-
int findInfoReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint8_t responseBuffer[]);
87-
void findInfoResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
88-
void findByTypeReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
89-
void readByTypeReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
90-
int readByTypeReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint16_t type, uint8_t responseBuffer[]);
91-
void readByTypeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
92-
void readOrReadBlobReq(uint16_t connectionHandle, uint16_t mtu, uint8_t opcode, uint8_t dlen, uint8_t data[]);
93-
void readResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
94-
void readByGroupReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
95-
int readByGroupReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint16_t uuid, uint8_t responseBuffer[]);
96-
void readByGroupResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
97-
void writeReqOrCmd(uint16_t connectionHandle, uint16_t mtu, uint8_t op, uint8_t dlen, uint8_t data[]);
98-
void writeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
99-
void prepWriteReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
100-
void execWriteReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
101-
void handleNotifyOrInd(uint16_t connectionHandle, uint8_t opcode, uint8_t dlen, uint8_t data[]);
102-
void handleCnf(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
103-
void sendError(uint16_t connectionHandle, uint8_t opcode, uint16_t handle, uint8_t code);
104-
105-
bool exchangeMtu(uint16_t connectionHandle);
106-
bool discoverServices(uint16_t connectionHandle, BLERemoteDevice* device, const char* serviceUuidFilter);
107-
bool discoverCharacteristics(uint16_t connectionHandle, BLERemoteDevice* device);
108-
bool discoverDescriptors(uint16_t connectionHandle, BLERemoteDevice* device);
109-
110-
int sendReq(uint16_t connectionHandle, void* requestBuffer, int requestLength, uint8_t responseBuffer[]);
81+
virtual void error(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
82+
virtual void mtuReq(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
83+
virtual int mtuReq(uint16_t connectionHandle, uint16_t mtu, uint8_t responseBuffer[]);
84+
virtual void mtuResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
85+
virtual void findInfoReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
86+
virtual int findInfoReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint8_t responseBuffer[]);
87+
virtual void findInfoResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
88+
virtual void findByTypeReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
89+
virtual void readByTypeReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
90+
virtual int readByTypeReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint16_t type, uint8_t responseBuffer[]);
91+
virtual void readByTypeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
92+
virtual void readOrReadBlobReq(uint16_t connectionHandle, uint16_t mtu, uint8_t opcode, uint8_t dlen, uint8_t data[]);
93+
virtual void readResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
94+
virtual void readByGroupReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
95+
virtual int readByGroupReq(uint16_t connectionHandle, uint16_t startHandle, uint16_t endHandle, uint16_t uuid, uint8_t responseBuffer[]);
96+
virtual void readByGroupResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
97+
virtual void writeReqOrCmd(uint16_t connectionHandle, uint16_t mtu, uint8_t op, uint8_t dlen, uint8_t data[]);
98+
virtual void writeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
99+
virtual void prepWriteReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
100+
virtual void execWriteReq(uint16_t connectionHandle, uint16_t mtu, uint8_t dlen, uint8_t data[]);
101+
virtual void handleNotifyOrInd(uint16_t connectionHandle, uint8_t opcode, uint8_t dlen, uint8_t data[]);
102+
virtual void handleCnf(uint16_t connectionHandle, uint8_t dlen, uint8_t data[]);
103+
virtual void sendError(uint16_t connectionHandle, uint8_t opcode, uint16_t handle, uint8_t code);
104+
105+
virtual bool exchangeMtu(uint16_t connectionHandle);
106+
virtual bool discoverServices(uint16_t connectionHandle, BLERemoteDevice* device, const char* serviceUuidFilter);
107+
virtual bool discoverCharacteristics(uint16_t connectionHandle, BLERemoteDevice* device);
108+
virtual bool discoverDescriptors(uint16_t connectionHandle, BLERemoteDevice* device);
109+
110+
virtual int sendReq(uint16_t connectionHandle, void* requestBuffer, int requestLength, uint8_t responseBuffer[]);
111111

112112
private:
113113
uint16_t _maxMtu;

src/utility/GAP.h

+14-14
Original file line numberDiff line numberDiff line change
@@ -29,30 +29,30 @@ class GAPClass {
2929
GAPClass();
3030
virtual ~GAPClass();
3131

32-
bool advertising();
33-
int advertise(uint8_t* advData, uint8_t advDataLength, uint8_t* scanData, uint8_t scanDataLength);
34-
void stopAdvertise();
32+
virtual bool advertising();
33+
virtual int advertise(uint8_t* advData, uint8_t advDataLength, uint8_t* scanData, uint8_t scanDataLength);
34+
virtual void stopAdvertise();
3535

36-
int scan(bool withDuplicates);
37-
int scanForName(String name, bool withDuplicates);
38-
int scanForUuid(String uuid, bool withDuplicates);
39-
int scanForAddress(String address, bool withDuplicates);
40-
void stopScan();
41-
BLEDevice available();
36+
virtual int scan(bool withDuplicates);
37+
virtual int scanForName(String name, bool withDuplicates);
38+
virtual int scanForUuid(String uuid, bool withDuplicates);
39+
virtual int scanForAddress(String address, bool withDuplicates);
40+
virtual void stopScan();
41+
virtual BLEDevice available();
4242

43-
void setAdvertisingInterval(uint16_t advertisingInterval);
44-
void setConnectable(bool connectable);
43+
virtual void setAdvertisingInterval(uint16_t advertisingInterval);
44+
virtual void setConnectable(bool connectable);
4545

46-
void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
46+
virtual void setEventHandler(BLEDeviceEvent event, BLEDeviceEventHandler eventHandler);
4747

4848
protected:
4949
friend class HCIClass;
5050

51-
void handleLeAdvertisingReport(uint8_t type, uint8_t addressType, uint8_t address[6],
51+
virtual void handleLeAdvertisingReport(uint8_t type, uint8_t addressType, uint8_t address[6],
5252
uint8_t eirLength, uint8_t eirData[], int8_t rssi);
5353

5454
private:
55-
bool matchesScanFilter(const BLEDevice& device);
55+
virtual bool matchesScanFilter(const BLEDevice& device);
5656

5757
private:
5858
bool _advertising;

src/utility/GATT.h

+10-10
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,29 @@ class GATTClass {
3333
GATTClass();
3434
virtual ~GATTClass();
3535

36-
void begin();
37-
void end();
36+
virtual void begin();
37+
virtual void end();
3838

39-
void setDeviceName(const char* deviceName);
40-
void setAppearance(uint16_t appearance);
39+
virtual void setDeviceName(const char* deviceName);
40+
virtual void setAppearance(uint16_t appearance);
4141

42-
void addService(BLEService& service);
42+
virtual void addService(BLEService& service);
4343

4444
protected:
4545
friend class ATTClass;
4646

47-
unsigned int attributeCount() const;
48-
BLELocalAttribute* attribute(unsigned int index) const;
47+
virtual unsigned int attributeCount() const;
48+
virtual BLELocalAttribute* attribute(unsigned int index) const;
4949

5050
protected:
5151
friend class BLELocalCharacteristic;
5252

53-
uint16_t serviceUuidForCharacteristic(BLELocalCharacteristic* characteristic) const;
53+
virtual uint16_t serviceUuidForCharacteristic(BLELocalCharacteristic* characteristic) const;
5454

5555
private:
56-
void addService(BLELocalService* service);
56+
virtual void addService(BLELocalService* service);
5757

58-
void clearAttributes();
58+
virtual void clearAttributes();
5959

6060
private:
6161
BLELinkedList<BLELocalAttribute*> _attributes;

src/utility/HCI.h

+29-29
Original file line numberDiff line numberDiff line change
@@ -27,58 +27,58 @@ class HCIClass {
2727
HCIClass();
2828
virtual ~HCIClass();
2929

30-
int begin();
31-
void end();
30+
virtual int begin();
31+
virtual void end();
3232

33-
void poll();
34-
void poll(unsigned long timeout);
33+
virtual void poll();
34+
virtual void poll(unsigned long timeout);
3535

36-
int reset();
37-
int readLocalVersion(uint8_t& hciVer, uint16_t& hciRev, uint8_t& lmpVer,
36+
virtual int reset();
37+
virtual int readLocalVersion(uint8_t& hciVer, uint16_t& hciRev, uint8_t& lmpVer,
3838
uint16_t& manufacturer, uint16_t& lmpSubVer);
39-
int readBdAddr(uint8_t addr[6]);
39+
virtual int readBdAddr(uint8_t addr[6]);
4040

41-
int readRssi(uint16_t handle);
41+
virtual int readRssi(uint16_t handle);
4242

43-
int setEventMask(uint64_t eventMask);
43+
virtual int setEventMask(uint64_t eventMask);
4444

45-
int readLeBufferSize(uint16_t& pktLen, uint8_t& maxPkt);
46-
int leSetRandomAddress(uint8_t addr[6]);
47-
int leSetAdvertisingParameters(uint16_t minInterval, uint16_t maxInterval,
45+
virtual int readLeBufferSize(uint16_t& pktLen, uint8_t& maxPkt);
46+
virtual int leSetRandomAddress(uint8_t addr[6]);
47+
virtual int leSetAdvertisingParameters(uint16_t minInterval, uint16_t maxInterval,
4848
uint8_t advType, uint8_t ownBdaddrType,
4949
uint8_t directBdaddrType, uint8_t directBdaddr[6],
5050
uint8_t chanMap,
5151
uint8_t filter);
52-
int leSetAdvertisingData(uint8_t length, uint8_t data[]);
53-
int leSetScanResponseData(uint8_t length, uint8_t data[]);
54-
int leSetAdvertiseEnable(uint8_t enable);
55-
int leSetScanParameters(uint8_t type, uint16_t interval, uint16_t window,
52+
virtual int leSetAdvertisingData(uint8_t length, uint8_t data[]);
53+
virtual int leSetScanResponseData(uint8_t length, uint8_t data[]);
54+
virtual int leSetAdvertiseEnable(uint8_t enable);
55+
virtual int leSetScanParameters(uint8_t type, uint16_t interval, uint16_t window,
5656
uint8_t ownBdaddrType, uint8_t filter);
57-
int leSetScanEnable(uint8_t enabled, uint8_t duplicates);
58-
int leCreateConn(uint16_t interval, uint16_t window, uint8_t initiatorFilter,
57+
virtual int leSetScanEnable(uint8_t enabled, uint8_t duplicates);
58+
virtual int leCreateConn(uint16_t interval, uint16_t window, uint8_t initiatorFilter,
5959
uint8_t peerBdaddrType, uint8_t peerBdaddr[6], uint8_t ownBdaddrType,
6060
uint16_t minInterval, uint16_t maxInterval, uint16_t latency,
6161
uint16_t supervisionTimeout, uint16_t minCeLength, uint16_t maxCeLength);
62-
int leConnUpdate(uint16_t handle, uint16_t minInterval, uint16_t maxInterval,
62+
virtual int leConnUpdate(uint16_t handle, uint16_t minInterval, uint16_t maxInterval,
6363
uint16_t latency, uint16_t supervisionTimeout);
64-
int leCancelConn();
64+
virtual int leCancelConn();
6565

6666

67-
int sendAclPkt(uint16_t handle, uint8_t cid, uint8_t plen, void* data);
67+
virtual int sendAclPkt(uint16_t handle, uint8_t cid, uint8_t plen, void* data);
6868

69-
int disconnect(uint16_t handle);
69+
virtual int disconnect(uint16_t handle);
7070

71-
void debug(Stream& stream);
72-
void noDebug();
71+
virtual void debug(Stream& stream);
72+
virtual void noDebug();
7373

7474
private:
75-
int sendCommand(uint16_t opcode, uint8_t plen = 0, void* parameters = NULL);
75+
virtual int sendCommand(uint16_t opcode, uint8_t plen = 0, void* parameters = NULL);
7676

77-
void handleAclDataPkt(uint8_t plen, uint8_t pdata[]);
78-
void handleNumCompPkts(uint16_t handle, uint16_t numPkts);
79-
void handleEventPkt(uint8_t plen, uint8_t pdata[]);
77+
virtual void handleAclDataPkt(uint8_t plen, uint8_t pdata[]);
78+
virtual void handleNumCompPkts(uint16_t handle, uint16_t numPkts);
79+
virtual void handleEventPkt(uint8_t plen, uint8_t pdata[]);
8080

81-
void dumpPkt(const char* prefix, uint8_t plen, uint8_t pdata[]);
81+
virtual void dumpPkt(const char* prefix, uint8_t plen, uint8_t pdata[]);
8282

8383
Stream* _debug;
8484

0 commit comments

Comments
 (0)