LCOV - code coverage report
Current view: top level - tracing - registry.cpp (source / functions) Hit Total Coverage
Test: lcov_final.info Lines: 0 12 0.0 %
Date: 2024-02-15 08:20:41 Functions: 0 2 0.0 %

          Line data    Source code
       1             : /*
       2             :  *    Copyright (c) 2023 Project CHIP Authors
       3             :  *    All rights reserved.
       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             : #include <lib/support/IntrusiveList.h>
      18             : 
      19             : #include <matter/tracing/build_config.h>
      20             : #include <platform/LockTracker.h>
      21             : #include <tracing/registry.h>
      22             : 
      23             : namespace chip {
      24             : namespace Tracing {
      25             : namespace {
      26             : 
      27             : IntrusiveList<Backend> gTracingBackends;
      28             : 
      29             : } // namespace
      30             : 
      31           0 : void Register(Backend & backend)
      32             : {
      33           0 :     assertChipStackLockedByCurrentThread();
      34           0 :     if (!backend.IsInList())
      35             :     {
      36           0 :         backend.Open();
      37           0 :         gTracingBackends.PushBack(&backend);
      38             :     }
      39           0 : }
      40             : 
      41           0 : void Unregister(Backend & backend)
      42             : {
      43           0 :     assertChipStackLockedByCurrentThread();
      44           0 :     if (backend.IsInList())
      45             :     {
      46           0 :         gTracingBackends.Remove(&backend);
      47           0 :         backend.Close();
      48             :     }
      49           0 : }
      50             : 
      51             : #if MATTER_TRACING_ENABLED
      52             : 
      53             : namespace Internal {
      54             : 
      55             : void Begin(const char * label, const char * group)
      56             : {
      57             :     for (auto & backend : gTracingBackends)
      58             :     {
      59             :         backend.TraceBegin(label, group);
      60             :     }
      61             : }
      62             : 
      63             : void End(const char * label, const char * group)
      64             : {
      65             :     for (auto & backend : gTracingBackends)
      66             :     {
      67             :         backend.TraceEnd(label, group);
      68             :     }
      69             : }
      70             : 
      71             : void Instant(const char * label, const char * group)
      72             : {
      73             :     for (auto & backend : gTracingBackends)
      74             :     {
      75             :         backend.TraceInstant(label, group);
      76             :     }
      77             : }
      78             : 
      79             : void Counter(const char * label)
      80             : {
      81             :     for (auto & backend : gTracingBackends)
      82             :     {
      83             :         backend.TraceCounter(label);
      84             :     }
      85             : }
      86             : 
      87             : void Metric(const char * label, int32_t value)
      88             : {
      89             :     for (auto & backend : gTracingBackends)
      90             :     {
      91             :         backend.TraceMetric(label, value);
      92             :     }
      93             : }
      94             : 
      95             : void LogMessageSend(::chip::Tracing::MessageSendInfo & info)
      96             : {
      97             :     for (auto & backend : gTracingBackends)
      98             :     {
      99             :         backend.LogMessageSend(info);
     100             :     }
     101             : }
     102             : 
     103             : void LogMessageReceived(::chip::Tracing::MessageReceivedInfo & info)
     104             : {
     105             :     for (auto & backend : gTracingBackends)
     106             :     {
     107             :         backend.LogMessageReceived(info);
     108             :     }
     109             : }
     110             : 
     111             : void LogNodeLookup(::chip::Tracing::NodeLookupInfo & info)
     112             : {
     113             :     for (auto & backend : gTracingBackends)
     114             :     {
     115             :         backend.LogNodeLookup(info);
     116             :     }
     117             : }
     118             : 
     119             : void LogNodeDiscovered(::chip::Tracing::NodeDiscoveredInfo & info)
     120             : {
     121             :     for (auto & backend : gTracingBackends)
     122             :     {
     123             :         backend.LogNodeDiscovered(info);
     124             :     }
     125             : }
     126             : 
     127             : void LogNodeDiscoveryFailed(::chip::Tracing::NodeDiscoveryFailedInfo & info)
     128             : {
     129             :     for (auto & backend : gTracingBackends)
     130             :     {
     131             :         backend.LogNodeDiscoveryFailed(info);
     132             :     }
     133             : }
     134             : 
     135             : } // namespace Internal
     136             : 
     137             : #endif // MATTTER_TRACING_ENABLED
     138             : 
     139             : } // namespace Tracing
     140             : } // namespace chip

Generated by: LCOV version 1.14