Skip to content

Commit e6b1f18

Browse files
committed
Fix builds when exluding roles
1 parent 77f66f6 commit e6b1f18

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+298
-281
lines changed

src/NimBLE2904.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
20-
21-
# include "NimBLE2904.h"
18+
#include "NimBLE2904.h"
19+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
2220

2321
NimBLE2904::NimBLE2904(NimBLECharacteristic* pChr)
2422
: NimBLEDescriptor(NimBLEUUID((uint16_t)0x2904), BLE_GATT_CHR_F_READ, sizeof(NimBLE2904Data), pChr) {
@@ -71,4 +69,4 @@ void NimBLE2904::setUnit(uint16_t unit) {
7169
setValue(m_data);
7270
} // setUnit
7371

74-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL */
72+
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL

src/NimBLE2904.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define NIMBLE_CPP_2904_H_
2020

2121
#include "nimconfig.h"
22-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
22+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
2323

2424
# include "NimBLEDescriptor.h"
2525

src/NimBLEAddress.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED)
18+
#include "NimBLEAddress.h"
19+
#if CONFIG_BT_ENABLED
2020

21-
# include "NimBLEAddress.h"
2221
# include "NimBLELog.h"
2322

2423
# include <algorithm>
@@ -224,11 +223,16 @@ NimBLEAddress::operator std::string() const {
224223
snprintf(buffer,
225224
sizeof(buffer),
226225
NIMBLE_CPP_ADDR_FMT,
227-
this->val[5], NIMBLE_CPP_ADDR_DELIMITER,
228-
this->val[4], NIMBLE_CPP_ADDR_DELIMITER,
229-
this->val[3], NIMBLE_CPP_ADDR_DELIMITER,
230-
this->val[2], NIMBLE_CPP_ADDR_DELIMITER,
231-
this->val[1], NIMBLE_CPP_ADDR_DELIMITER,
226+
this->val[5],
227+
NIMBLE_CPP_ADDR_DELIMITER,
228+
this->val[4],
229+
NIMBLE_CPP_ADDR_DELIMITER,
230+
this->val[3],
231+
NIMBLE_CPP_ADDR_DELIMITER,
232+
this->val[2],
233+
NIMBLE_CPP_ADDR_DELIMITER,
234+
this->val[1],
235+
NIMBLE_CPP_ADDR_DELIMITER,
232236
this->val[0]);
233237
return std::string{buffer};
234238
} // operator std::string

src/NimBLEAddress.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717

1818
#ifndef NIMBLE_CPP_ADDRESS_H_
1919
#define NIMBLE_CPP_ADDRESS_H_
20+
2021
#include "nimconfig.h"
21-
#if defined(CONFIG_BT_ENABLED)
22+
#if CONFIG_BT_ENABLED
2223

2324
# if defined(CONFIG_NIMBLE_CPP_IDF)
2425
# include "nimble/ble.h"
@@ -66,5 +67,5 @@ class NimBLEAddress : private ble_addr_t {
6667
operator uint64_t() const;
6768
};
6869

69-
#endif /* CONFIG_BT_ENABLED */
70-
#endif /* NIMBLE_CPP_ADDRESS_H_ */
70+
#endif // CONFIG_BT_ENABLED
71+
#endif // NIMBLE_CPP_ADDRESS_H_

src/NimBLEAdvertisedDevice.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
18+
#include "NimBLEAdvertisedDevice.h"
19+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_OBSERVER
2020

2121
# include "NimBLEDevice.h"
22-
# include "NimBLEAdvertisedDevice.h"
2322
# include "NimBLEUtils.h"
2423
# include "NimBLELog.h"
2524

@@ -814,4 +813,4 @@ const std::vector<uint8_t>::const_iterator NimBLEAdvertisedDevice::end() const {
814813
return m_payload.cend();
815814
}
816815

817-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_CENTRAL */
816+
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_OBSERVER

src/NimBLEAdvertisedDevice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define NIMBLE_CPP_ADVERTISED_DEVICE_H_
2020

2121
#include "nimconfig.h"
22-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
22+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_OBSERVER
2323

2424
# include "NimBLEAddress.h"
2525
# include "NimBLEScan.h"

src/NimBLEAdvertisementData.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if (defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER) && !CONFIG_BT_NIMBLE_EXT_ADV) || \
20-
defined(_DOXYGEN_)
18+
#include "NimBLEAdvertisementData.h"
19+
#if (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
2120

22-
# include "NimBLEAdvertisementData.h"
2321
# include "NimBLEDevice.h"
2422
# include "NimBLEUtils.h"
2523
# include "NimBLEUUID.h"
@@ -585,4 +583,4 @@ std::string NimBLEAdvertisementData::toString() const {
585583
return str;
586584
} // toString
587585

588-
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV
586+
#endif // (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)

src/NimBLEAdvertisementData.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
#define NIMBLE_CPP_ADVERTISEMENT_DATA_H_
2020

2121
#include "nimconfig.h"
22-
#if (defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER) && !CONFIG_BT_NIMBLE_EXT_ADV) || \
23-
defined(_DOXYGEN_)
22+
#if (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
2423

2524
# include <cstdint>
2625
# include <string>
@@ -75,5 +74,5 @@ class NimBLEAdvertisementData {
7574
std::vector<uint8_t> m_payload{};
7675
}; // NimBLEAdvertisementData
7776

78-
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV
77+
#endif // (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
7978
#endif // NIMBLE_CPP_ADVERTISEMENT_DATA_H_

src/NimBLEAdvertising.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,14 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if (defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER) && !CONFIG_BT_NIMBLE_EXT_ADV) || \
20-
defined(_DOXYGEN_)
18+
#include "NimBLEAdvertising.h"
19+
#if (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
2120

2221
# if defined(CONFIG_NIMBLE_CPP_IDF)
2322
# include "services/gap/ble_svc_gap.h"
2423
# else
2524
# include "nimble/nimble/host/services/gap/include/services/gap/ble_svc_gap.h"
2625
# endif
27-
# include "NimBLEAdvertising.h"
2826
# include "NimBLEDevice.h"
2927
# include "NimBLEServer.h"
3028
# include "NimBLEUtils.h"
@@ -44,7 +42,7 @@ NimBLEAdvertising::NimBLEAdvertising()
4442
m_duration{BLE_HS_FOREVER},
4543
m_scanResp{false},
4644
m_advDataSet{false} {
47-
# if !defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
45+
# if !CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
4846
m_advParams.conn_mode = BLE_GAP_CONN_MODE_NON;
4947
# else
5048
m_advParams.conn_mode = BLE_GAP_CONN_MODE_UND;
@@ -197,7 +195,7 @@ bool NimBLEAdvertising::start(uint32_t duration, const NimBLEAddress* dirAddr) {
197195
return true;
198196
}
199197

200-
# if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
198+
# if CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
201199
NimBLEServer* pServer = NimBLEDevice::getServer();
202200
if (pServer != nullptr) {
203201
pServer->start(); // make sure the GATT server is ready before advertising
@@ -222,7 +220,7 @@ bool NimBLEAdvertising::start(uint32_t duration, const NimBLEAddress* dirAddr) {
222220
duration = BLE_HS_FOREVER;
223221
}
224222

225-
# if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
223+
# if CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
226224
int rc = ble_gap_adv_start(NimBLEDevice::m_ownAddrType,
227225
(dirAddr != nullptr) ? dirAddr->getBase() : NULL,
228226
duration,
@@ -622,4 +620,4 @@ bool NimBLEAdvertising::setServiceData(const NimBLEUUID& uuid, const std::string
622620
return setServiceData(uuid, reinterpret_cast<const uint8_t*>(data.data()), data.length());
623621
} // setServiceData
624622

625-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV */
623+
#endif // (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)

src/NimBLEAdvertising.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
#define NIMBLE_CPP_ADVERTISING_H_
2020

2121
#include "nimconfig.h"
22-
#if (defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER) && !CONFIG_BT_NIMBLE_EXT_ADV) || \
23-
defined(_DOXYGEN_)
22+
#if (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
2423

2524
# if defined(CONFIG_NIMBLE_CPP_IDF)
2625
# include "host/ble_gap.h"
@@ -106,5 +105,5 @@ class NimBLEAdvertising {
106105
bool m_advDataSet : 1;
107106
};
108107

109-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV */
110-
#endif /* NIMBLE_CPP_ADVERTISING_H_ */
108+
#endif // (CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER && !CONFIG_BT_NIMBLE_EXT_ADV) || defined(_DOXYGEN_)
109+
#endif // NIMBLE_CPP_ADVERTISING_H_

src/NimBLEAttValue.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,15 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED)
18+
#include "NimBLEAttValue.h"
19+
#if CONFIG_BT_ENABLED
2020

2121
# if defined(CONFIG_NIMBLE_CPP_IDF)
2222
# include "nimble/nimble_npl.h"
2323
# else
2424
# include "nimble/nimble/include/nimble/nimble_npl.h"
2525
# endif
2626

27-
# include "NimBLEAttValue.h"
2827
# include "NimBLELog.h"
2928

3029
static const char* LOG_TAG = "NimBLEAttValue";
@@ -105,7 +104,7 @@ void NimBLEAttValue::deepCopy(const NimBLEAttValue& source) {
105104

106105
// Set the value of the attribute.
107106
bool NimBLEAttValue::setValue(const uint8_t* value, uint16_t len) {
108-
m_attr_len = 0; // Just set the value length to 0 and append instead of repeating code.
107+
m_attr_len = 0; // Just set the value length to 0 and append instead of repeating code.
109108
m_attr_value[0] = '\0'; // Set the first byte to 0 incase the len of the new value is 0.
110109
append(value, len);
111110
return memcmp(m_attr_value, value, len) == 0 && m_attr_len == len;

src/NimBLEAttValue.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717

1818
#ifndef NIMBLE_CPP_ATTVALUE_H
1919
#define NIMBLE_CPP_ATTVALUE_H
20+
2021
#include "nimconfig.h"
21-
#if defined(CONFIG_BT_ENABLED)
22+
#if CONFIG_BT_ENABLED
2223

2324
# ifdef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
2425
# include <Arduino.h>
@@ -362,5 +363,5 @@ class NimBLEAttValue {
362363
# endif
363364
};
364365

365-
#endif /*(CONFIG_BT_ENABLED) */
366-
#endif /* NIMBLE_CPP_ATTVALUE_H_ */
366+
#endif // CONFIG_BT_ENABLED
367+
#endif // NIMBLE_CPP_ATTVALUE_H_

src/NimBLEAttribute.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define NIMBLE_CPP_ATTRIBUTE_H_
2020

2121
#include "nimconfig.h"
22-
#if defined(CONFIG_BT_ENABLED) && (defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL) || defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL))
22+
#if CONFIG_BT_ENABLED && (CONFIG_BT_NIMBLE_ROLE_PERIPHERAL || CONFIG_BT_NIMBLE_ROLE_CENTRAL)
2323

2424
# include "NimBLEUUID.h"
2525

src/NimBLEBeacon.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
18+
#include "NimBLEBeacon.h"
19+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER
2020

21-
# include "NimBLEBeacon.h"
2221
# include "NimBLEUUID.h"
2322
# include "NimBLELog.h"
2423

src/NimBLEBeacon.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#define NIMBLE_CPP_BEACON_H_
2020

2121
#include "nimconfig.h"
22-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
22+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_BROADCASTER
2323

2424
class NimBLEUUID;
2525

@@ -60,5 +60,5 @@ class NimBLEBeacon {
6060
BeaconData m_beaconData;
6161
}; // NimBLEBeacon
6262

63-
#endif // NIMBLE_CPP_BEACON_H_
6463
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
64+
#endif // NIMBLE_CPP_BEACON_H_

src/NimBLECharacteristic.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
20-
2118
# include "NimBLECharacteristic.h"
19+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
20+
2221
# include "NimBLE2904.h"
2322
# include "NimBLEDevice.h"
2423
# include "NimBLELog.h"
@@ -415,4 +414,4 @@ void NimBLECharacteristicCallbacks::onSubscribe(NimBLECharacteristic* pCharacter
415414
NIMBLE_LOGD("NimBLECharacteristicCallbacks", "onSubscribe: default");
416415
}
417416

418-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL */
417+
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL

src/NimBLECharacteristic.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717

1818
#ifndef NIMBLE_CPP_CHARACTERISTIC_H_
1919
#define NIMBLE_CPP_CHARACTERISTIC_H_
20+
2021
#include "nimconfig.h"
21-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
22+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
2223

2324
class NimBLECharacteristicCallbacks;
2425
class NimBLEService;
@@ -253,5 +254,5 @@ class NimBLECharacteristicCallbacks {
253254
virtual void onSubscribe(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, uint16_t subValue);
254255
};
255256

256-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL */
257-
#endif /*NIMBLE_CPP_CHARACTERISTIC_H_*/
257+
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
258+
#endif // NIMBLE_CPP_CHARACTERISTIC_H_

src/NimBLEClient.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "nimconfig.h"
19-
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
18+
#include "NimBLEClient.h"
19+
#if CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_CENTRAL
2020

21-
# include "NimBLEClient.h"
2221
# include "NimBLERemoteService.h"
2322
# include "NimBLERemoteCharacteristic.h"
2423
# include "NimBLEDevice.h"
@@ -126,6 +125,7 @@ size_t NimBLEClient::deleteService(const NimBLEUUID& uuid) {
126125
return m_svcVec.size();
127126
} // deleteService
128127

128+
# if CONFIG_BT_NIMBLE_ROLE_OBSERVER
129129
/**
130130
* @brief Connect to an advertising device.
131131
* @param [in] pDevice A pointer to the advertised device instance to connect to.
@@ -141,6 +141,7 @@ bool NimBLEClient::connect(const NimBLEAdvertisedDevice* pDevice, bool deleteAtt
141141
NimBLEAddress address(pDevice->getAddress());
142142
return connect(address, deleteAttributes, asyncConnect, exchangeMTU);
143143
} // connect
144+
# endif
144145

145146
/**
146147
* @brief Connect to the BLE Server using the address of the last connected device, or the address\n
@@ -227,10 +228,15 @@ bool NimBLEClient::connect(const NimBLEAddress& address, bool deleteAttributes,
227228
break;
228229

229230
case BLE_HS_EBUSY:
231+
# if CONFIG_BT_NIMBLE_ROLE_OBSERVER
232+
230233
// Scan was active, stop it through the NimBLEScan API to release any tasks and call the callback.
231234
if (!NimBLEDevice::getScan()->stop()) {
232235
rc = BLE_HS_EUNKNOWN;
233236
}
237+
# else
238+
rc = BLE_HS_EUNKNOWN;
239+
# endif
234240
break;
235241

236242
case BLE_HS_EDONE:
@@ -1301,4 +1307,4 @@ void NimBLEClientCallbacks::onPhyUpdate(NimBLEClient* pClient, uint8_t txPhy, ui
13011307
} // onPhyUpdate
13021308
#
13031309

1304-
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_CENTRAL */
1310+
#endif // CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_CENTRAL

0 commit comments

Comments
 (0)