Matter SDK Coverage Report
Current view: top level - lib/core - PeerId.h (source / functions) Coverage Total Hit
Test: SHA:b879ecb8e99e175eea0a293a888bda853da2b19c Lines: 14.3 % 14 2
Test Date: 2025-01-17 19:00:11 Functions: 25.0 % 8 2

            Line data    Source code
       1              : /*
       2              :  *
       3              :  *    Copyright (c) 2021-2022 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              : 
      18              : #pragma once
      19              : 
      20              : #include <lib/core/DataModelTypes.h>
      21              : #include <lib/core/NodeId.h>
      22              : 
      23              : namespace chip {
      24              : 
      25              : /* NOTE: PeerId should be only used by mDNS, because it contains a compressed fabric id which is not unique, and the compressed
      26              :  * fabric id is only used for mDNS announcement. ScopedNodeId which contains a node id and fabirc index, should be used in prefer of
      27              :  * PeerId. ScopedNodeId is locally unique.
      28              :  */
      29              : // TODO: remove PeerId usage outside lib/dns, move PeerId into lib/dns
      30              : /// A peer is identified by a node id within a compressed fabric ID
      31              : class PeerId
      32              : {
      33              : public:
      34            0 :     PeerId() {}
      35            0 :     PeerId(CompressedFabricId compressedFabricId, NodeId nodeId) : mNodeId(nodeId), mCompressedFabricId(compressedFabricId) {}
      36              : 
      37           69 :     NodeId GetNodeId() const { return mNodeId; }
      38            0 :     PeerId & SetNodeId(NodeId id)
      39              :     {
      40            0 :         mNodeId = id;
      41            0 :         return *this;
      42              :     }
      43              : 
      44           77 :     CompressedFabricId GetCompressedFabricId() const { return mCompressedFabricId; }
      45            0 :     PeerId & SetCompressedFabricId(CompressedFabricId id)
      46              :     {
      47            0 :         mCompressedFabricId = id;
      48            0 :         return *this;
      49              :     }
      50              : 
      51            0 :     bool operator==(const PeerId & other) const
      52              :     {
      53            0 :         return (mNodeId == other.mNodeId) && (mCompressedFabricId == other.mCompressedFabricId);
      54              :     }
      55            0 :     bool operator!=(const PeerId & other) const
      56              :     {
      57            0 :         return (mNodeId != other.mNodeId) || (mCompressedFabricId != other.mCompressedFabricId);
      58              :     }
      59              : 
      60              : private:
      61              :     NodeId mNodeId = kUndefinedNodeId;
      62              : 
      63              :     CompressedFabricId mCompressedFabricId = kUndefinedCompressedFabricId;
      64              : };
      65              : 
      66              : } // namespace chip
        

Generated by: LCOV version 2.0-1