@@ -351,11 +351,16 @@ class ReadClient : public Messaging::ExchangeDelegate
351
351
* Re-activate an inactive subscription.
352
352
*
353
353
* When subscribing to LIT-ICD and liveness timeout reached and OnResubscriptionNeeded returns
354
- * CHIP_ERROR_LIT_SUBSCRIBE_INACTIVE_TIMEOUT, the read client will move to the InactiveICDSubscription state and
355
- * resubscription can be triggered via OnActiveModeNotification().
354
+ * CHIP_ERROR_LIT_SUBSCRIBE_INACTIVE_TIMEOUT, the read client will move to the InactiveICDSubscription state and
355
+ * resubscription can be triggered via OnActiveModeNotification().
356
356
*
357
357
* If the subscription is not in the `InactiveICDSubscription` state, this function will do nothing. So it is always safe to
358
- * call this function when a check-in message is received.
358
+ * call this function when a check-in message is received.
359
+ *
360
+ * If the server sends out check-in message, and there is no reschedule subscription yet in client side at the same time, it
361
+ * means current client does not realize subscription has gone, and we should forcibly timeout current subscription, and schedule a new one.
362
+ *
363
+ * This API only works when issuing subscription via SendAutoResubscribeRequest.
359
364
*/
360
365
void OnActiveModeNotification ();
361
366
@@ -503,6 +508,13 @@ class ReadClient : public Messaging::ExchangeDelegate
503
508
*/
504
509
Optional<System::Clock::Timeout> GetSubscriptionTimeout ();
505
510
511
+
512
+ Optional<ScopedNodeId> GetLocalScopedNodeId () const
513
+ {
514
+ VerifyOrReturnValue (aReadPrepareParams.mSessionHolder , NullOptional);
515
+ return MakeOptional (mReadPrepareParams .mSessionHolder ->AsSecureSession ()->GetLocalScopedNodeId ());
516
+ }
517
+
506
518
private:
507
519
friend class TestReadInteraction ;
508
520
friend class InteractionModelEngine ;
0 commit comments