@@ -96,8 +96,8 @@ void NimBLEAdvertising::addServiceUUID(const char* serviceUUID) {
96
96
97
97
98
98
/* *
99
- * @brief Add a service uuid to exposed list of services .
100
- * @param [in] serviceUUID The UUID of the service to expose .
99
+ * @brief Remove a service UUID from the advertisment .
100
+ * @param [in] serviceUUID The UUID of the service to remove .
101
101
*/
102
102
void NimBLEAdvertising::removeServiceUUID (const NimBLEUUID &serviceUUID) {
103
103
for (auto it = m_serviceUUIDs.begin (); it != m_serviceUUIDs.end (); ++it) {
@@ -110,6 +110,15 @@ void NimBLEAdvertising::removeServiceUUID(const NimBLEUUID &serviceUUID) {
110
110
} // addServiceUUID
111
111
112
112
113
+ /* *
114
+ * @brief Remove all service UUIDs from the advertisment.
115
+ */
116
+ void NimBLEAdvertising::removeServices () {
117
+ std::vector<NimBLEUUID>().swap (m_serviceUUIDs);
118
+ m_advDataSet = false ;
119
+ } // removeServices
120
+
121
+
113
122
/* *
114
123
* @brief Set the device appearance in the advertising data.
115
124
* @param [in] appearance The appearance of the device in the advertising data.
@@ -135,7 +144,7 @@ void NimBLEAdvertising::addTxPower() {
135
144
* @param [in] name The name to advertise.
136
145
*/
137
146
void NimBLEAdvertising::setName (const std::string &name) {
138
- m_name. assign (name.begin (), name.end ());
147
+ std::vector< uint8_t > (name.begin (), name.end ()). swap (m_name );
139
148
m_advData.name = &m_name[0 ];
140
149
m_advData.name_len = m_name.size ();
141
150
m_advDataSet = false ;
@@ -147,7 +156,7 @@ void NimBLEAdvertising::setName(const std::string &name) {
147
156
* @param [in] data The data to advertise.
148
157
*/
149
158
void NimBLEAdvertising::setManufacturerData (const std::string &data) {
150
- m_mfgData. assign (data.begin (), data.end ());
159
+ std::vector< uint8_t > (data.begin (), data.end ()). swap (m_mfgData );
151
160
m_advData.mfg_data = &m_mfgData[0 ];
152
161
m_advData.mfg_data_len = m_mfgData.size ();
153
162
m_advDataSet = false ;
@@ -171,7 +180,7 @@ void NimBLEAdvertising::setManufacturerData(const std::vector<uint8_t> &data) {
171
180
* @param [in] uri The URI to advertise.
172
181
*/
173
182
void NimBLEAdvertising::setURI (const std::string &uri) {
174
- m_uri. assign (uri.begin (), uri.end ());
183
+ std::vector< uint8_t > (uri.begin (), uri.end ()). swap (m_uri );
175
184
m_advData.uri = &m_uri[0 ];
176
185
m_advData.uri_len = m_uri.size ();
177
186
m_advDataSet = false ;
@@ -187,23 +196,26 @@ void NimBLEAdvertising::setURI(const std::string &uri) {
187
196
void NimBLEAdvertising::setServiceData (const NimBLEUUID &uuid, const std::string &data) {
188
197
switch (uuid.bitSize ()) {
189
198
case 16 : {
190
- m_svcData16.assign ((uint8_t *)&uuid.getNative ()->u16 .value , (uint8_t *)&uuid.getNative ()->u16 .value + 2 );
199
+ std::vector<uint8_t >((uint8_t *)&uuid.getNative ()->u16 .value ,
200
+ (uint8_t *)&uuid.getNative ()->u16 .value + 2 ).swap (m_svcData16);
191
201
m_svcData16.insert (m_svcData16.end (), data.begin (), data.end ());
192
202
m_advData.svc_data_uuid16 = (uint8_t *)&m_svcData16[0 ];
193
203
m_advData.svc_data_uuid16_len = (data.length () > 0 ) ? m_svcData16.size () : 0 ;
194
204
break ;
195
205
}
196
206
197
207
case 32 : {
198
- m_svcData32.assign ((uint8_t *)&uuid.getNative ()->u32 .value , (uint8_t *)&uuid.getNative ()->u32 .value + 4 );
208
+ std::vector<uint8_t >((uint8_t *)&uuid.getNative ()->u32 .value ,
209
+ (uint8_t *)&uuid.getNative ()->u32 .value + 4 ).swap (m_svcData32);
199
210
m_svcData32.insert (m_svcData32.end (), data.begin (), data.end ());
200
211
m_advData.svc_data_uuid32 = (uint8_t *)&m_svcData32[0 ];
201
212
m_advData.svc_data_uuid32_len = (data.length () > 0 ) ? m_svcData32.size () : 0 ;
202
213
break ;
203
214
}
204
215
205
216
case 128 : {
206
- m_svcData128.assign (uuid.getNative ()->u128 .value , uuid.getNative ()->u128 .value + 16 );
217
+ std::vector<uint8_t >(uuid.getNative ()->u128 .value ,
218
+ uuid.getNative ()->u128 .value + 16 ).swap (m_svcData128);
207
219
m_svcData128.insert (m_svcData128.end (), data.begin (), data.end ());
208
220
m_advData.svc_data_uuid128 = (uint8_t *)&m_svcData128[0 ];
209
221
m_advData.svc_data_uuid128_len = (data.length () > 0 ) ? m_svcData128.size () : 0 ;
0 commit comments