Line data Source code
1 : // Copyright 2025 Accenture. 2 : 3 : #pragma once 4 : 5 : #include "ip/IPAddress.h" 6 : 7 : #include <platform/estdint.h> 8 : 9 : namespace udp 10 : { 11 : class AbstractDatagramSocket; 12 : 13 : /** 14 : * Interface for classes that want to receive data from an 15 : * AbstractDatagramSocket. 16 : * 17 : */ 18 : class IDataListener 19 : { 20 : protected: 21 : IDataListener(); 22 : 23 : public: 24 : IDataListener(IDataListener const&) = delete; 25 : IDataListener& operator=(IDataListener const&) = delete; 26 : // [IDataListener] 27 : /** 28 : * callback that gets called when data has been received 29 : * \param length number of bytes received 30 : * 31 : * \note 32 : * It is expected that the data is read from the AbstractSocket within this 33 : * callback. The AbstractSocket may overwrite its internal buffers after 34 : * this callback is done. 35 : */ 36 : virtual void dataReceived( 37 : AbstractDatagramSocket& socket, 38 : ::ip::IPAddress sourceAddress, 39 : uint16_t sourcePort, 40 : ::ip::IPAddress destinationAddress, 41 : uint16_t length) 42 : = 0; 43 : // [IDataListener] 44 : }; 45 : 46 : /* 47 : * inline methods 48 : */ 49 2 : inline IDataListener::IDataListener() = default; 50 : 51 : } /* namespace udp */