2020#ifndef MBED_GATT_SERVER_H__
2121#define MBED_GATT_SERVER_H__
2222
23+ #include " platform/mbed_toolchain.h"
24+
2325#include " ble/common/CallChainOfFunctionPointersWithContext.h"
2426#include " ble/common/blecommon.h"
2527
@@ -118,6 +120,84 @@ class GattServer {
118120 (void )connectionHandle;
119121 (void )attMtuSize;
120122 }
123+
124+ /* *
125+ * Function invoked when the server has sent data to a client as
126+ * part of a notification/indication.
127+ *
128+ * @note params has a temporary scope and should be copied by the
129+ * application if needed later
130+ */
131+ virtual void onDataSent (const GattDataSentCallbackParams ¶ms) {
132+ (void )params;
133+ }
134+
135+ /* *
136+ * Function invoked when a client writes an attribute
137+ *
138+ * @note params has a temporary scope and should be copied by the
139+ * application if needed later
140+ */
141+ virtual void onDataWritten (const GattWriteCallbackParams ¶ms) {
142+ (void )params;
143+ }
144+
145+ /* *
146+ * Function invoked when a client reads an attribute
147+ *
148+ * @note This functionality may not be available on all underlying stacks.
149+ * Application code may work around that limitation by monitoring read
150+ * requests instead of read events.
151+ *
152+ * @note params has a temporary scope and should be copied by the
153+ * application if needed later
154+ *
155+ * @see GattCharacteristic::setReadAuthorizationCallback()
156+ * @see isOnDataReadAvailable().
157+ */
158+ virtual void onDataRead (const GattReadCallbackParams ¶ms) {
159+ (void )params;
160+ }
161+
162+ /* *
163+ * Function invoked when the GattServer instance is about
164+ * to be shut down. This can result in a call to reset() or BLE::reset().
165+ */
166+ virtual void onShutdown (const GattServer &server) {
167+ (void )server;
168+ }
169+
170+ /* *
171+ * Function invoked when the client has subscribed to characteristic updates
172+ *
173+ * @note params has a temporary scope and should be copied by the
174+ * application if needed later
175+ */
176+ virtual void onUpdatesEnabled (const GattUpdatesEnabledCallbackParams ¶ms) {
177+ (void )params;
178+ }
179+
180+ /* *
181+ * Function invoked when the client has unsubscribed to characteristic updates
182+ *
183+ * @note params has a temporary scope and should be copied by the
184+ * application if needed later
185+ */
186+ virtual void onUpdatesDisabled (const GattUpdatesDisabledCallbackParams ¶ms) {
187+ (void )params;
188+ }
189+
190+ /* *
191+ * Function invoked when an ACK has been received for an
192+ * indication sent to the client.
193+ *
194+ * @note params has a temporary scope and should be copied by the
195+ * application if needed later
196+ */
197+ virtual void onConfirmationReceived (const GattConfirmationReceivedCallbackParams ¶ms) {
198+ (void )params;
199+ }
200+
121201 protected:
122202 /* *
123203 * Prevent polymorphic deletion and avoid unnecessary virtual destructor
@@ -204,6 +284,12 @@ class GattServer {
204284 * module to signal events back to the application.
205285 *
206286 * @param handler Application implementation of an EventHandler.
287+ *
288+ * @note Multiple discrete EventHandler instances may be used by adding them
289+ * to a ChainableGattServerEventHandler and then setting the chain as the primary
290+ * GattServer EventHandler using this function.
291+ *
292+ * @see ChainableGattServerEventHandler
207293 */
208294 void setEventHandler (EventHandler *handler);
209295
@@ -401,6 +487,8 @@ class GattServer {
401487 * @note It is possible to chain together multiple onDataSent callbacks
402488 * (potentially from different modules of an application).
403489 */
490+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
491+ " been replaced by GattServer::setEventHandler. Use that function instead." )
404492 void onDataSent (const DataSentCallback_t &callback);
405493
406494 /* *
@@ -413,6 +501,8 @@ class GattServer {
413501 * function.
414502 */
415503 template <typename T>
504+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
505+ " been replaced by GattServer::setEventHandler. Use that function instead." )
416506 void onDataSent (T *objPtr, void (T::*memberPtr)(unsigned count))
417507 {
418508 onDataSent ({objPtr, memberPtr});
@@ -423,6 +513,8 @@ class GattServer {
423513 *
424514 * @return A reference to the DATA_SENT event callback chain.
425515 */
516+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
517+ " been replaced by GattServer::setEventHandler. Use that function instead." )
426518 DataSentCallbackChain_t &onDataSent ();
427519
428520 /* *
@@ -434,6 +526,8 @@ class GattServer {
434526 * @attention It is possible to set multiple event handlers. Registered
435527 * handlers may be removed with onDataWritten().detach(callback).
436528 */
529+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
530+ " been replaced by GattServer::setEventHandler. Use that function instead." )
437531 void onDataWritten (const DataWrittenCallback_t &callback);
438532
439533 /* *
@@ -446,6 +540,8 @@ class GattServer {
446540 * function.
447541 */
448542 template <typename T>
543+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
544+ " been replaced by GattServer::setEventHandler. Use that function instead." )
449545 void onDataWritten (
450546 T *objPtr,
451547 void (T::*memberPtr)(const GattWriteCallbackParams *context)
@@ -465,6 +561,8 @@ class GattServer {
465561 * @note It is possible to unregister callbacks using
466562 * onDataWritten().detach(callback).
467563 */
564+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
565+ " been replaced by GattServer::setEventHandler. Use that function instead." )
468566 DataWrittenCallbackChain_t &onDataWritten();
469567
470568 /* *
@@ -485,6 +583,8 @@ class GattServer {
485583 * @attention It is possible to set multiple event handlers. Registered
486584 * handlers may be removed with onDataRead().detach(callback).
487585 */
586+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
587+ " been replaced by GattServer::setEventHandler. Use that function instead." )
488588 ble_error_t onDataRead(const DataReadCallback_t &callback);
489589
490590 /* *
@@ -496,6 +596,8 @@ class GattServer {
496596 * function.
497597 */
498598 template <typename T>
599+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
600+ " been replaced by GattServer::setEventHandler. Use that function instead." )
499601 ble_error_t onDataRead(
500602 T *objPtr,
501603 void (T::*memberPtr)(const GattReadCallbackParams *context)
@@ -515,6 +617,8 @@ class GattServer {
515617 * @note It is possible to unregister callbacks using
516618 * onDataRead().detach(callback).
517619 */
620+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
621+ " been replaced by GattServer::setEventHandler. Use that function instead." )
518622 DataReadCallbackChain_t &onDataRead();
519623
520624 /* *
@@ -530,6 +634,8 @@ class GattServer {
530634 * @note It is possible to unregister a callback using
531635 * onShutdown().detach(callback)
532636 */
637+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
638+ " been replaced by GattServer::setEventHandler. Use that function instead." )
533639 void onShutdown(const GattServerShutdownCallback_t &callback);
534640
535641 /* *
@@ -544,6 +650,8 @@ class GattServer {
544650 * function.
545651 */
546652 template <typename T>
653+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
654+ " been replaced by GattServer::setEventHandler. Use that function instead." )
547655 void onShutdown(T *objPtr, void (T::*memberPtr)(const GattServer *))
548656 {
549657 onShutdown ({objPtr, memberPtr});
@@ -560,6 +668,8 @@ class GattServer {
560668 * @note It is possible to unregister callbacks using
561669 * onShutdown().detach(callback).
562670 */
671+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
672+ " been replaced by GattServer::setEventHandler. Use that function instead." )
563673 GattServerShutdownCallbackChain_t& onShutdown();
564674
565675 /* *
@@ -568,6 +678,8 @@ class GattServer {
568678 *
569679 * @param[in] callback Event handler being registered.
570680 */
681+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
682+ " been replaced by GattServer::setEventHandler. Use that function instead." )
571683 void onUpdatesEnabled(EventCallback_t callback);
572684
573685 /* *
@@ -576,6 +688,8 @@ class GattServer {
576688 *
577689 * @param[in] callback Event handler being registered.
578690 */
691+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
692+ " been replaced by GattServer::setEventHandler. Use that function instead." )
579693 void onUpdatesDisabled(EventCallback_t callback);
580694
581695 /* *
@@ -586,6 +700,8 @@ class GattServer {
586700 *
587701 * @param[in] callback Event handler being registered.
588702 */
703+ MBED_DEPRECATED_SINCE (" mbed-os-6.3.0" , " Individual callback-registering functions have"
704+ " been replaced by GattServer::setEventHandler. Use that function instead." )
589705 void onConfirmationReceived(EventCallback_t callback);
590706
591707#if !defined(DOXYGEN_ONLY)
0 commit comments