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-04-15 11:38:51 Functions: 100.0 % 8 8

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

Generated by: LCOV version 2.0-1