Matter SDK Coverage Report
Current view: top level - app/icd/server - ICDStateObserver.h (source / functions) Coverage Total Hit
Test: SHA:f84fe08d06f240e801b5d923f8a938a9938ca110 Lines: 0.0 % 1 0
Test Date: 2025-02-22 08:08:07 Functions: 0.0 % 2 0

            Line data    Source code
       1              : /*
       2              :  *
       3              :  *    Copyright (c) 2023 Project CHIP Authors
       4              :  *
       5              :  *    Licensed under the Apache License, Version 2.0 (the "License");
       6              :  *    you may not use this file except in compliance with the License.
       7              :  *    You may obtain a copy of the License at
       8              :  *
       9              :  *        http://www.apache.org/licenses/LICENSE-2.0
      10              :  *
      11              :  *    Unless required by applicable law or agreed to in writing, software
      12              :  *    distributed under the License is distributed on an "AS IS" BASIS,
      13              :  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      14              :  *    See the License for the specific language governing permissions and
      15              :  *    limitations under the License.
      16              :  */
      17              : #pragma once
      18              : 
      19              : #ifndef ICD_SLEEP_TIME_JITTER_MS
      20              : #define ICD_SLEEP_TIME_JITTER_MS (CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC * 0.75)
      21              : #endif
      22              : 
      23              : #ifndef ICD_ACTIVE_TIME_JITTER_MS
      24              : #define ICD_ACTIVE_TIME_JITTER_MS 300
      25              : #endif
      26              : 
      27              : namespace chip {
      28              : namespace app {
      29              : 
      30              : /**
      31              :  * @brief Public API used by the ICDManager to expose when different events occur.
      32              :  *        ICDManager::RegisterObserver can be used to register as an Observer to be notified when these events occur.
      33              :  *        These functions are called synchronously.
      34              :  */
      35              : class ICDStateObserver
      36              : {
      37              : public:
      38            0 :     virtual ~ICDStateObserver() {}
      39              : 
      40              :     /**
      41              :      * @brief API called when the ICD enters ActiveMode. API isn't called if we need to extend the remaining active mode timer
      42              :      * duration. API is called after the ICDManager has finished executing its internal actions.
      43              :      */
      44              :     virtual void OnEnterActiveMode() = 0;
      45              : 
      46              :     /**
      47              :      * @brief API called when the ICD enters IdleMode.
      48              :      *        API is called after the ICDManager has finished executing its internal actions.
      49              :      */
      50              :     virtual void OnEnterIdleMode() = 0;
      51              : 
      52              :     /**
      53              :      * @brief API is called when the ICD is about to enter IdleMode. API is called when there is `ICD_ACTIVE_TIME_JITTER_MS` of time
      54              :      *        remaining to the active mode timer.
      55              :      *        This API is only called once per transition from ActiveMode to IdleMode.
      56              :      *        If OnTransitionToIdle triggers the active mode timer to increase, the next time we are about to enter IdleMode,
      57              :      *        this API will not be called.
      58              :      */
      59              :     virtual void OnTransitionToIdle() = 0;
      60              : 
      61              :     /**
      62              :      * @brief API is called when the ICD changes operating mode. This API is only called if the ICD changes state, not when it
      63              :      *        remains in the same state.
      64              :      *        API is called after the ICDManager has finished executing its internal actions.
      65              :      */
      66              :     virtual void OnICDModeChange() = 0;
      67              : };
      68              : 
      69              : } // namespace app
      70              : } // namespace chip
        

Generated by: LCOV version 2.0-1