LCOV - code coverage report
Current view: top level - libs/bsw/transport/src - AbstractTransportLayer.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 32 32
Test Date: 2026-06-18 08:29:03 Functions: 100.0 % 8 8

            Line data    Source code
       1              : /********************************************************************************
       2              :  * Copyright (c) 2024 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              : // NOLINTBEGIN(cppcoreguidelines-pro-type-vararg): Logger/StringWriter API is variadic by design.
      12              : 
      13              : #include "transport/AbstractTransportLayer.h"
      14              : 
      15              : #include "common/busid/BusId.h"
      16              : #include "transport/TransportLogger.h"
      17              : 
      18              : namespace transport
      19              : {
      20              : using ::util::logger::Logger;
      21              : using ::util::logger::TRANSPORT;
      22              : 
      23              : // explicit
      24          165 : AbstractTransportLayer::AbstractTransportLayer(uint8_t const busId)
      25          165 : : fBusId(busId), fProvidingListenerHelper(busId)
      26          165 : {}
      27              : 
      28              : // virtual
      29            1 : AbstractTransportLayer::ErrorCode AbstractTransportLayer::init() { return ErrorCode::TP_OK; }
      30              : 
      31              : // virtual
      32            1 : bool AbstractTransportLayer::shutdown(ShutdownDelegate) { return SYNC_SHUTDOWN_COMPLETE; }
      33              : 
      34              : /*
      35              :  *
      36              :  * TransportMessageProvidingListenerHelper
      37              :  *
      38              :  */
      39              : 
      40          165 : AbstractTransportLayer::TransportMessageProvidingListenerHelper::
      41          165 :     TransportMessageProvidingListenerHelper(uint8_t const busId)
      42          165 : : fpMessageProvider(nullptr), fpMessageListener(nullptr), fBusId(busId)
      43          165 : {}
      44              : 
      45              : // virtual
      46              : ITransportMessageProvidingListener::ErrorCode
      47           11 : AbstractTransportLayer::TransportMessageProvidingListenerHelper::getTransportMessage(
      48              :     uint8_t const srcBusId,
      49              :     uint16_t const sourceAddress,
      50              :     uint16_t const targetAddress,
      51              :     uint16_t const size,
      52              :     ::etl::span<uint8_t const> const& peek,
      53              :     TransportMessage*& pTransportMessage)
      54              : {
      55           11 :     if (fpMessageProvider != nullptr)
      56              :     {
      57           10 :         return fpMessageProvider->getTransportMessage(
      58           10 :             srcBusId, sourceAddress, targetAddress, size, peek, pTransportMessage);
      59              :     }
      60            1 :     Logger::warn(
      61              :         TRANSPORT,
      62              :         "AbstractTransportLayer(%s)::getTransportMessage() with no registered "
      63              :         "provider!",
      64            1 :         ::common::busid::BusIdTraits::getName(fBusId));
      65            1 :     pTransportMessage = nullptr;
      66            1 :     return ITransportMessageProvidingListener::ErrorCode::TPMSG_NO_MSG_AVAILABLE;
      67              : }
      68              : 
      69              : // virtual
      70           22 : void AbstractTransportLayer::TransportMessageProvidingListenerHelper::releaseTransportMessage(
      71              :     TransportMessage& transportMessage)
      72              : {
      73           22 :     if (fpMessageProvider != nullptr)
      74              :     {
      75           16 :         fpMessageProvider->releaseTransportMessage(transportMessage);
      76              :     }
      77           22 : }
      78              : 
      79              : // virtual
      80              : ITransportMessageListener::ReceiveResult
      81           15 : AbstractTransportLayer::TransportMessageProvidingListenerHelper::messageReceived(
      82              :     uint8_t const sourceBusId,
      83              :     TransportMessage& transportMessage,
      84              :     ITransportMessageProcessedListener* const pNotificationListener)
      85              : {
      86           15 :     if (fpMessageListener != nullptr)
      87              :     {
      88           14 :         return fpMessageListener->messageReceived(
      89           14 :             sourceBusId, transportMessage, pNotificationListener);
      90              :     }
      91            1 :     Logger::warn(
      92              :         TRANSPORT,
      93              :         "AbstractTransportLayer(%s)::messageReceived() with no registered "
      94              :         "listener!",
      95            1 :         ::common::busid::BusIdTraits::getName(fBusId));
      96            1 :     return ReceiveResult::RECEIVED_ERROR;
      97              : }
      98              : 
      99              : // virtual
     100            2 : void AbstractTransportLayer::TransportMessageProvidingListenerHelper::dump()
     101              : {
     102            2 :     if (fpMessageProvider != nullptr)
     103              :     {
     104            1 :         fpMessageProvider->dump();
     105              :     }
     106            2 : }
     107              : 
     108              : } // namespace transport
     109              : 
     110              : // NOLINTEND(cppcoreguidelines-pro-type-vararg)
        

Generated by: LCOV version 2.0-1