LCOV - code coverage report
Current view: top level - app - ReadPrepareParams.h (source / functions) Hit Total Coverage
Test: lcov_final.info Lines: 22 24 91.7 %
Date: 2024-02-15 08:20:41 Functions: 2 3 66.7 %

          Line data    Source code
       1             : /*
       2             :  *
       3             :  *    Copyright (c) 2021 Project CHIP Authors
       4             :  *    All rights reserved.
       5             :  *
       6             :  *    Licensed under the Apache License, Version 2.0 (the "License");
       7             :  *    you may not use this file except in compliance with the License.
       8             :  *    You may obtain a copy of the License at
       9             :  *
      10             :  *        http://www.apache.org/licenses/LICENSE-2.0
      11             :  *
      12             :  *    Unless required by applicable law or agreed to in writing, software
      13             :  *    distributed under the License is distributed on an "AS IS" BASIS,
      14             :  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      15             :  *    See the License for the specific language governing permissions and
      16             :  *    limitations under the License.
      17             :  */
      18             : 
      19             : #pragma once
      20             : 
      21             : #include <app/AttributePathParams.h>
      22             : #include <app/DataVersionFilter.h>
      23             : #include <app/EventPathParams.h>
      24             : #include <app/InteractionModelTimeout.h>
      25             : #include <app/util/basic-types.h>
      26             : #include <lib/core/CHIPCore.h>
      27             : #include <lib/core/TLV.h>
      28             : #include <messaging/ExchangeMgr.h>
      29             : 
      30             : namespace chip {
      31             : namespace app {
      32             : 
      33             : struct ReadPrepareParams
      34             : {
      35             :     SessionHolder mSessionHolder;
      36             :     EventPathParams * mpEventPathParamsList         = nullptr;
      37             :     size_t mEventPathParamsListSize                 = 0;
      38             :     AttributePathParams * mpAttributePathParamsList = nullptr;
      39             :     size_t mAttributePathParamsListSize             = 0;
      40             :     DataVersionFilter * mpDataVersionFilterList     = nullptr;
      41             :     size_t mDataVersionFilterListSize               = 0;
      42             :     Optional<EventNumber> mEventNumber;
      43             :     // The timeout for waiting for the response or System::Clock::kZero to let the interaction model decide the timeout based on the
      44             :     // MRP timeouts of the session.
      45             :     System::Clock::Timeout mTimeout     = System::Clock::kZero;
      46             :     uint16_t mMinIntervalFloorSeconds   = 0;
      47             :     uint16_t mMaxIntervalCeilingSeconds = 0;
      48             :     bool mKeepSubscriptions             = false;
      49             :     bool mIsFabricFiltered              = true;
      50             :     bool mIsPeerLIT                     = false;
      51             : 
      52         982 :     ReadPrepareParams() {}
      53           0 :     ReadPrepareParams(const SessionHandle & sessionHandle) { mSessionHolder.Grab(sessionHandle); }
      54             :     ReadPrepareParams(ReadPrepareParams && other) : mSessionHolder(other.mSessionHolder)
      55             :     {
      56             :         mKeepSubscriptions                 = other.mKeepSubscriptions;
      57             :         mpEventPathParamsList              = other.mpEventPathParamsList;
      58             :         mEventPathParamsListSize           = other.mEventPathParamsListSize;
      59             :         mpAttributePathParamsList          = other.mpAttributePathParamsList;
      60             :         mAttributePathParamsListSize       = other.mAttributePathParamsListSize;
      61             :         mpDataVersionFilterList            = other.mpDataVersionFilterList;
      62             :         mDataVersionFilterListSize         = other.mDataVersionFilterListSize;
      63             :         mEventNumber                       = other.mEventNumber;
      64             :         mMinIntervalFloorSeconds           = other.mMinIntervalFloorSeconds;
      65             :         mMaxIntervalCeilingSeconds         = other.mMaxIntervalCeilingSeconds;
      66             :         mTimeout                           = other.mTimeout;
      67             :         mIsFabricFiltered                  = other.mIsFabricFiltered;
      68             :         mIsPeerLIT                         = other.mIsPeerLIT;
      69             :         other.mpEventPathParamsList        = nullptr;
      70             :         other.mEventPathParamsListSize     = 0;
      71             :         other.mpAttributePathParamsList    = nullptr;
      72             :         other.mAttributePathParamsListSize = 0;
      73             :     }
      74             : 
      75         157 :     ReadPrepareParams & operator=(ReadPrepareParams && other)
      76             :     {
      77         157 :         if (&other == this)
      78           0 :             return *this;
      79             : 
      80         157 :         mKeepSubscriptions                 = other.mKeepSubscriptions;
      81         157 :         mSessionHolder                     = other.mSessionHolder;
      82         157 :         mpEventPathParamsList              = other.mpEventPathParamsList;
      83         157 :         mEventPathParamsListSize           = other.mEventPathParamsListSize;
      84         157 :         mpAttributePathParamsList          = other.mpAttributePathParamsList;
      85         157 :         mAttributePathParamsListSize       = other.mAttributePathParamsListSize;
      86         157 :         mpDataVersionFilterList            = other.mpDataVersionFilterList;
      87         157 :         mDataVersionFilterListSize         = other.mDataVersionFilterListSize;
      88         157 :         mEventNumber                       = other.mEventNumber;
      89         157 :         mMinIntervalFloorSeconds           = other.mMinIntervalFloorSeconds;
      90         157 :         mMaxIntervalCeilingSeconds         = other.mMaxIntervalCeilingSeconds;
      91         157 :         mTimeout                           = other.mTimeout;
      92         157 :         mIsFabricFiltered                  = other.mIsFabricFiltered;
      93         157 :         mIsPeerLIT                         = other.mIsPeerLIT;
      94         157 :         other.mpEventPathParamsList        = nullptr;
      95         157 :         other.mEventPathParamsListSize     = 0;
      96         157 :         other.mpAttributePathParamsList    = nullptr;
      97         157 :         other.mAttributePathParamsListSize = 0;
      98         157 :         return *this;
      99             :     }
     100             : };
     101             : } // namespace app
     102             : } // namespace chip

Generated by: LCOV version 1.14