@@ -96,8 +96,8 @@ void NimBLEAdvertising::addServiceUUID(const char* serviceUUID) {
9696
9797
9898/* *
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 .
101101 */
102102void NimBLEAdvertising::removeServiceUUID (const NimBLEUUID &serviceUUID) {
103103 for (auto it = m_serviceUUIDs.begin (); it != m_serviceUUIDs.end (); ++it) {
@@ -110,6 +110,15 @@ void NimBLEAdvertising::removeServiceUUID(const NimBLEUUID &serviceUUID) {
110110} // addServiceUUID
111111
112112
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+
113122/* *
114123 * @brief Set the device appearance in the advertising data.
115124 * @param [in] appearance The appearance of the device in the advertising data.
@@ -135,7 +144,7 @@ void NimBLEAdvertising::addTxPower() {
135144 * @param [in] name The name to advertise.
136145 */
137146void 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 );
139148 m_advData.name = &m_name[0 ];
140149 m_advData.name_len = m_name.size ();
141150 m_advDataSet = false ;
@@ -147,7 +156,7 @@ void NimBLEAdvertising::setName(const std::string &name) {
147156 * @param [in] data The data to advertise.
148157 */
149158void 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 );
151160 m_advData.mfg_data = &m_mfgData[0 ];
152161 m_advData.mfg_data_len = m_mfgData.size ();
153162 m_advDataSet = false ;
@@ -171,7 +180,7 @@ void NimBLEAdvertising::setManufacturerData(const std::vector<uint8_t> &data) {
171180 * @param [in] uri The URI to advertise.
172181 */
173182void 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 );
175184 m_advData.uri = &m_uri[0 ];
176185 m_advData.uri_len = m_uri.size ();
177186 m_advDataSet = false ;
@@ -187,23 +196,26 @@ void NimBLEAdvertising::setURI(const std::string &uri) {
187196void NimBLEAdvertising::setServiceData (const NimBLEUUID &uuid, const std::string &data) {
188197 switch (uuid.bitSize ()) {
189198 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);
191201 m_svcData16.insert (m_svcData16.end (), data.begin (), data.end ());
192202 m_advData.svc_data_uuid16 = (uint8_t *)&m_svcData16[0 ];
193203 m_advData.svc_data_uuid16_len = (data.length () > 0 ) ? m_svcData16.size () : 0 ;
194204 break ;
195205 }
196206
197207 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);
199210 m_svcData32.insert (m_svcData32.end (), data.begin (), data.end ());
200211 m_advData.svc_data_uuid32 = (uint8_t *)&m_svcData32[0 ];
201212 m_advData.svc_data_uuid32_len = (data.length () > 0 ) ? m_svcData32.size () : 0 ;
202213 break ;
203214 }
204215
205216 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);
207219 m_svcData128.insert (m_svcData128.end (), data.begin (), data.end ());
208220 m_advData.svc_data_uuid128 = (uint8_t *)&m_svcData128[0 ];
209221 m_advData.svc_data_uuid128_len = (data.length () > 0 ) ? m_svcData128.size () : 0 ;
0 commit comments