GCC Code Coverage Report


Directory: ./
File: Drv/AsyncByteStreamBufferAdapter/AsyncByteStreamBufferAdapter.cpp
Date: 2026-09-03 22:12:29
Exec Total Coverage
Lines: 0 26 0.0%
Functions: 0 7 0.0%
Branches: 0 6 0.0%

Line Branch Exec Source
1 // ======================================================================
2 // \title AsyncByteStreamBufferAdapter.cpp
3 // \author shahab
4 // \brief cpp file for AsyncByteStreamBufferAdapter component implementation class
5 // ======================================================================
6
7 #include "Drv/AsyncByteStreamBufferAdapter/AsyncByteStreamBufferAdapter.hpp"
8
9 namespace Drv {
10
11 // ----------------------------------------------------------------------
12 // Component construction and destruction
13 // ----------------------------------------------------------------------
14
15 AsyncByteStreamBufferAdapter ::AsyncByteStreamBufferAdapter(const char* const compName)
16 : AsyncByteStreamBufferAdapterComponentBase(compName) {}
17
18 AsyncByteStreamBufferAdapter ::~AsyncByteStreamBufferAdapter() {}
19
20 // ----------------------------------------------------------------------
21 // Handler implementations for typed input ports
22 // ----------------------------------------------------------------------
23
24 void AsyncByteStreamBufferAdapter ::bufferIn_handler(FwIndexType portNum, Fw::Buffer& fwBuffer) {
25 if (this->m_driverIsReady) {
26 this->toByteStreamDriver_out(portNum, fwBuffer);
27 // ByteStreamDriver is Async; don't return buffer here but wait for toByteStreamDriverReturn
28 } else {
29 // If not ready, log warning and return buffer back immediately
30 this->log_WARNING_LO_DriverNotReady();
31 this->bufferInReturn_out(portNum, fwBuffer);
32 }
33 }
34
35 void AsyncByteStreamBufferAdapter ::bufferOutReturn_handler(FwIndexType portNum, Fw::Buffer& fwBuffer) {
36 this->fromByteStreamDriverReturn_out(portNum, fwBuffer);
37 }
38
39 void AsyncByteStreamBufferAdapter ::fromByteStreamDriver_handler(FwIndexType portNum,
40 Fw::Buffer& buffer,
41 const Drv::ByteStreamStatus& status) {
42 if (status == Drv::ByteStreamStatus::OP_OK) {
43 this->bufferOut_out(portNum, buffer);
44 // buffer ownership will come back through bufferOutReturn so we do **not** return buffer here
45 } else {
46 // If error, log and return buffer back immediately
47 this->log_WARNING_LO_DataReceiveError(status);
48 this->fromByteStreamDriverReturn_out(portNum, buffer);
49 }
50 }
51
52 void AsyncByteStreamBufferAdapter ::byteStreamDriverReady_handler(FwIndexType portNum) {
53 this->m_driverIsReady = true;
54 }
55
56 void AsyncByteStreamBufferAdapter ::toByteStreamDriverReturn_handler(FwIndexType portNum,
57 Fw::Buffer& buffer,
58 const Drv::ByteStreamStatus& status) {
59 if (status != Drv::ByteStreamStatus::OP_OK) {
60 this->log_WARNING_LO_DataSendError(status);
61 }
62 this->bufferInReturn_out(portNum, buffer);
63 }
64
65 } // namespace Drv
66