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-02-24 11:21:15 Functions: 100.0 % 8 8

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

Generated by: LCOV version 2.0-1