Line data Source code
1 : // Copyright 2024 Accenture. 2 : 3 : /** 4 : * Contains interface ICANFrameListener. 5 : * \file ICANFrameListener.h 6 : * \ingroup framemgmt 7 : */ 8 : #pragma once 9 : 10 : #include <estd/forward_list.h> 11 : 12 : namespace can 13 : { 14 : class CANFrame; 15 : class IFilter; 16 : 17 : /** 18 : * CANFrameListener interface 19 : * 20 : * 21 : * An ICANFrameListener subclass is a class interested in the reception 22 : * of CANFrames. Therefore it needs to register at an ICanTransceiver. 23 : */ 24 : class ICANFrameListener : public ::estd::forward_list_node<ICANFrameListener> 25 : { 26 : public: 27 : ICANFrameListener(); 28 : ICANFrameListener(ICANFrameListener const&) = delete; 29 : ICANFrameListener& operator=(ICANFrameListener const&) = delete; 30 : 31 : /** 32 : * This method notifies the listener of a CANFrame reception. 33 : */ 34 : virtual void frameReceived(CANFrame const& canFrame) = 0; 35 : 36 : /** 37 : * Returns the ICANFrameListeners filter. 38 : */ 39 : virtual IFilter& getFilter() = 0; 40 : }; 41 : 42 : /* 43 : * inline implementation 44 : */ 45 18 : inline ICANFrameListener::ICANFrameListener() : ::estd::forward_list_node<ICANFrameListener>() {} 46 : 47 : } // namespace can