Matter SDK Coverage Report
Current view: top level - lib/dnssd/minimal_mdns - ListenIterator.h (source / functions) Coverage Total Hit
Test: SHA:b879ecb8e99e175eea0a293a888bda853da2b19c Lines: 100.0 % 1 1
Test Date: 2025-01-17 19:00:11 Functions: 50.0 % 2 1

            Line data    Source code
       1              : /*
       2              :  *
       3              :  *    Copyright (c) 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              : #pragma once
      18              : 
      19              : #include <inet/IPAddress.h>
      20              : #include <inet/InetInterface.h>
      21              : 
      22              : namespace mdns {
      23              : namespace Minimal {
      24              : 
      25              : /// Provides a list of intefaces to listen on.
      26              : ///
      27              : /// When listening on IP, both IP address type (IPv4 or IPv6) and interface id
      28              : /// are important. In particular, when using link-local IP addresses, the actual
      29              : /// interface matters (e.g. FF02::FB will care over which IPv6 interface it is sent)
      30              : ///
      31              : /// For MDNS in particular, you may want:
      32              : ///  - IPv4 listen on InterfaceId::Null()
      33              : ///  - IPv6 listen on every specific interface id available (except local loopback and other
      34              : ///    not usable interfaces like docker)
      35              : class ListenIterator
      36              : {
      37              : public:
      38           64 :     virtual ~ListenIterator() {}
      39              : 
      40              :     // Get the next interface/address type to listen on
      41              :     virtual bool Next(chip::Inet::InterfaceId * id, chip::Inet::IPAddressType * type) = 0;
      42              : };
      43              : 
      44              : } // namespace Minimal
      45              : } // namespace mdns
        

Generated by: LCOV version 2.0-1