LCOV - code coverage report
Current view: top level - libs/bsw/cpp2someip/src - StatisticsEvaluator.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 29 29
Test Date: 2026-09-11 12:05:06 Functions: 100.0 % 5 5

            Line data    Source code
       1              : /********************************************************************************
       2              :  * Copyright (c) 2026 Accenture
       3              :  *
       4              :  * This program and the accompanying materials are made available under the
       5              :  * terms of the Apache License Version 2.0 which is available at
       6              :  * https://www.apache.org/licenses/LICENSE-2.0
       7              :  *
       8              :  * SPDX-License-Identifier: Apache-2.0
       9              :  ********************************************************************************/
      10              : 
      11              : #include "someip/StatisticsEvaluator.h"
      12              : 
      13              : #include "someip/IServiceRegistry.h"
      14              : #include "someip/QueryManager.h"
      15              : 
      16              : #include <util/timeout/ITimeoutManager2.h>
      17              : 
      18              : namespace someip
      19              : {
      20           10 : StatisticsEvaluator::StatisticsEvaluator(
      21              :     ::async::ContextType const ethernetContext,
      22              :     IServiceRegistry& serviceRegistry,
      23           10 :     QueryManager& queryManager)
      24           10 : : _ethernetContext(ethernetContext)
      25           10 : , _cyclicFunction(
      26           20 :       ::async::Function::CallType::create<StatisticsEvaluator, &StatisticsEvaluator::cyclic>(*this))
      27              : , _cyclicTimeout()
      28           10 : , _serviceRegistry(serviceRegistry)
      29           10 : , _queryManager(queryManager)
      30           10 : , _secondsExpired(0U)
      31           10 : {}
      32              : 
      33           10 : void StatisticsEvaluator::init()
      34              : {
      35           10 :     async::scheduleAtFixedRate(
      36           10 :         _ethernetContext, _cyclicFunction, _cyclicTimeout, 1000U, ::async::TimeUnit::MILLISECONDS);
      37           10 : }
      38              : 
      39            1 : void StatisticsEvaluator::shutdown() { _cyclicTimeout.cancel(); }
      40              : 
      41            1 : void StatisticsEvaluator::reset()
      42              : {
      43            1 :     _secondsExpired = 0U;
      44            1 :     Statistics::reset();
      45            1 : }
      46              : 
      47            9 : void StatisticsEvaluator::cyclic()
      48              : {
      49            9 :     Statistics::numIncomingSubscriptions    = _serviceRegistry.getCurrentNumberOfSubscriptions();
      50            9 :     Statistics::maxNumIncomingSubscriptions = _serviceRegistry.getMaximumNumberOfSubscriptions();
      51            9 :     Statistics::numProvidedServices         = _serviceRegistry.getCurrentNumberOfProvidedServices();
      52            9 :     Statistics::maxNumProvidedServices      = _serviceRegistry.getMaximumNumberOfProvidedServices();
      53            9 :     Statistics::numRemoteServices           = _serviceRegistry.getCurrentNumberOfRemoteServices();
      54            9 :     Statistics::maxNumRemoteServices        = _serviceRegistry.getMaximumNumberOfRemoteServices();
      55            9 :     Statistics::maxNumQueries               = _queryManager.getMaxNumQueries();
      56            9 :     Statistics::numQueries                  = _queryManager.getNumQueries();
      57            9 :     ++_secondsExpired;
      58            9 : }
      59              : 
      60              : } // namespace someip
        

Generated by: LCOV version 2.0-1