diff --git a/erpc_c/infra/erpc_basic_codec.cpp b/erpc_c/infra/erpc_basic_codec.cpp index 7fc54407..d59a697f 100644 --- a/erpc_c/infra/erpc_basic_codec.cpp +++ b/erpc_c/infra/erpc_basic_codec.cpp @@ -27,6 +27,13 @@ using namespace erpc; const uint32_t BasicCodec::kBasicCodecVersion = 1UL; +BasicCodec::BasicCodec(void) +: Codec() +{ +} + +BasicCodec::~BasicCodec(void) {} + void BasicCodec::startWriteMessage(message_type_t type, uint32_t service, uint32_t request, uint32_t sequence) { uint32_t header = @@ -367,6 +374,13 @@ void BasicCodec::readNullFlag(bool &isNull) ERPC_MANUALLY_CONSTRUCTED_ARRAY_STATIC(BasicCodec, s_basicCodecManual, ERPC_CODEC_COUNT); +BasicCodecFactory::BasicCodecFactory(void) +: CodecFactory() +{ +} + +BasicCodecFactory::~BasicCodecFactory(void) {} + Codec *BasicCodecFactory::create(void) { ERPC_CREATE_NEW_OBJECT(BasicCodec, s_basicCodecManual, ERPC_CODEC_COUNT) diff --git a/erpc_c/infra/erpc_basic_codec.hpp b/erpc_c/infra/erpc_basic_codec.hpp index c39a0c64..3dc0faa9 100644 --- a/erpc_c/infra/erpc_basic_codec.hpp +++ b/erpc_c/infra/erpc_basic_codec.hpp @@ -43,10 +43,15 @@ class BasicCodec : public Codec public: static const uint32_t kBasicCodecVersion; /*!< Codec version. */ - BasicCodec(void) - : Codec() - { - } + /*! + * @brief Constructor. + */ + BasicCodec(void); + + /*! + * @brief CodecFactory destructor + */ + virtual ~BasicCodec(void); //! @name Encoding //@{ @@ -344,6 +349,16 @@ class BasicCodec : public Codec class BasicCodecFactory : public CodecFactory { public: + /*! + * @brief Constructor. + */ + BasicCodecFactory(void); + + /*! + * @brief CodecFactory destructor + */ + virtual ~BasicCodecFactory(void); + /*! * @brief Return created codec. * diff --git a/erpc_c/infra/erpc_message_buffer.cpp b/erpc_c/infra/erpc_message_buffer.cpp index 42d70999..e578079c 100644 --- a/erpc_c/infra/erpc_message_buffer.cpp +++ b/erpc_c/infra/erpc_message_buffer.cpp @@ -239,6 +239,10 @@ erpc_status_t Cursor::write(const void *data, uint32_t length) return err; } +MessageBufferFactory::MessageBufferFactory(void) {} + +MessageBufferFactory::~MessageBufferFactory(void) {} + MessageBuffer MessageBufferFactory::create(uint8_t reserveHeaderSize) { MessageBuffer messageBuffer = create(); @@ -248,6 +252,11 @@ MessageBuffer MessageBufferFactory::create(uint8_t reserveHeaderSize) return messageBuffer; } +bool MessageBufferFactory::createServerBuffer(void) +{ + return true; +} + erpc_status_t MessageBufferFactory::prepareServerBufferForSend(MessageBuffer &message, uint8_t reserveHeaderSize) { message.setUsed(reserveHeaderSize); diff --git a/erpc_c/infra/erpc_message_buffer.hpp b/erpc_c/infra/erpc_message_buffer.hpp index 1f071dca..857c422f 100644 --- a/erpc_c/infra/erpc_message_buffer.hpp +++ b/erpc_c/infra/erpc_message_buffer.hpp @@ -367,12 +367,12 @@ class MessageBufferFactory * * This function initializes object attributes. */ - MessageBufferFactory(void) {} + MessageBufferFactory(void); /*! * @brief MessageBufferFactory destructor */ - virtual ~MessageBufferFactory(void) {} + virtual ~MessageBufferFactory(void); /*! * @brief This function creates new message buffer. @@ -397,7 +397,7 @@ class MessageBufferFactory * * @return Has to return TRUE when server need create buffer for receiving message. */ - virtual bool createServerBuffer(void) { return true; } + virtual bool createServerBuffer(void); /*! * @brief This function is preparing output buffer on server side. diff --git a/erpc_c/infra/erpc_message_loggers.hpp b/erpc_c/infra/erpc_message_loggers.hpp index a060d163..528c7702 100644 --- a/erpc_c/infra/erpc_message_loggers.hpp +++ b/erpc_c/infra/erpc_message_loggers.hpp @@ -86,7 +86,7 @@ class MessageLoggers /*! * @brief Transport destructor */ - virtual ~MessageLoggers(void); + ~MessageLoggers(void); /*! * @brief This function add given transport to newly created MessageLogger object. diff --git a/erpc_c/infra/erpc_simple_server.cpp b/erpc_c/infra/erpc_simple_server.cpp index 2943e2f1..9d268849 100644 --- a/erpc_c/infra/erpc_simple_server.cpp +++ b/erpc_c/infra/erpc_simple_server.cpp @@ -15,17 +15,49 @@ using namespace erpc; //////////////////////////////////////////////////////////////////////////////// // Code //////////////////////////////////////////////////////////////////////////////// +SimpleServer::SimpleServer(void) +: m_isServerOn(true) +{ +} -void SimpleServer::disposeBufferAndCodec(Codec *codec) +SimpleServer::~SimpleServer(void) {} + +erpc_status_t SimpleServer::run(void) { - if (codec != NULL) + erpc_status_t err = kErpcStatus_Success; + while ((err == kErpcStatus_Success) && m_isServerOn) { - if (codec->getBuffer() != NULL) + err = runInternal(); + } + return err; +} + +erpc_status_t SimpleServer::poll(void) +{ + erpc_status_t err; + + if (m_isServerOn) + { + if (m_transport->hasMessage() == true) { - m_messageFactory->dispose(&codec->getBufferRef()); + err = runInternal(); + } + else + { + err = kErpcStatus_Success; } - m_codecFactory->dispose(codec); } + else + { + err = kErpcStatus_ServerIsDown; + } + + return err; +} + +void SimpleServer::stop(void) +{ + m_isServerOn = false; } erpc_status_t SimpleServer::runInternal(void) @@ -151,16 +183,6 @@ erpc_status_t SimpleServer::runInternalEnd(Codec *codec, message_type_t msgType, return err; } -erpc_status_t SimpleServer::run(void) -{ - erpc_status_t err = kErpcStatus_Success; - while ((err == kErpcStatus_Success) && m_isServerOn) - { - err = runInternal(); - } - return err; -} - #if ERPC_NESTED_CALLS erpc_status_t SimpleServer::run(RequestContext &request) { @@ -212,30 +234,14 @@ erpc_status_t SimpleServer::run(RequestContext &request) } #endif -erpc_status_t SimpleServer::poll(void) +void SimpleServer::disposeBufferAndCodec(Codec *codec) { - erpc_status_t err; - - if (m_isServerOn) + if (codec != NULL) { - if (m_transport->hasMessage() == true) - { - err = runInternal(); - } - else + if (codec->getBuffer() != NULL) { - err = kErpcStatus_Success; + m_messageFactory->dispose(&codec->getBufferRef()); } + m_codecFactory->dispose(codec); } - else - { - err = kErpcStatus_ServerIsDown; - } - - return err; -} - -void SimpleServer::stop(void) -{ - m_isServerOn = false; } diff --git a/erpc_c/infra/erpc_simple_server.hpp b/erpc_c/infra/erpc_simple_server.hpp index 21083348..efe0ebc0 100644 --- a/erpc_c/infra/erpc_simple_server.hpp +++ b/erpc_c/infra/erpc_simple_server.hpp @@ -37,10 +37,9 @@ class SimpleServer : public Server * * This function initializes object attributes. */ - SimpleServer(void) - : m_isServerOn(true) - { - } + SimpleServer(void); + + virtual ~SimpleServer(void); /*! * @brief Run server in infinite loop. @@ -66,6 +65,16 @@ class SimpleServer : public Server virtual void stop(void) override; protected: + bool m_isServerOn; /*!< Information if server is ON or OFF. */ + + /*! + * @brief Run server implementation. + * + * This function call functions for receiving data, process this data and + * if reply exist, send it back. + */ + erpc_status_t runInternal(void); + /*! * @brief This function handle receiving request message and reading base info about message. * @@ -104,22 +113,12 @@ class SimpleServer : public Server virtual erpc_status_t run(RequestContext &request) override; #endif - /*! - * @brief Run server implementation. - * - * This function call functions for receiving data, process this data and - * if reply exist, send it back. - */ - erpc_status_t runInternal(void); - /*! * @brief Disposing message buffers and codecs. * * @param[in] codec Pointer to codec to dispose. It contains also message buffer to dispose. */ void disposeBufferAndCodec(Codec *codec); - - bool m_isServerOn; /*!< Information if server is ON or OFF. */ }; } // namespace erpc diff --git a/erpc_c/infra/erpc_transport.hpp b/erpc_c/infra/erpc_transport.hpp index e0cdcc5f..88fde0e3 100644 --- a/erpc_c/infra/erpc_transport.hpp +++ b/erpc_c/infra/erpc_transport.hpp @@ -113,10 +113,12 @@ class TransportFactory * @brief Constructor. */ TransportFactory(void) {} + /*! * @brief TransportFactory destructor */ virtual ~TransportFactory(void) {} + /*! * @brief Return created transport object. * diff --git a/erpc_c/infra/erpc_transport_arbitrator.cpp b/erpc_c/infra/erpc_transport_arbitrator.cpp index 34a13966..5d57f686 100644 --- a/erpc_c/infra/erpc_transport_arbitrator.cpp +++ b/erpc_c/infra/erpc_transport_arbitrator.cpp @@ -44,24 +44,9 @@ TransportArbitrator::~TransportArbitrator(void) freeClientList(m_clientFreeList); } -void TransportArbitrator::setCrc16(Crc16 *crcImpl) +uint8_t TransportArbitrator::reserveHeaderSize(void) { - erpc_assert(crcImpl != NULL); - erpc_assert(m_sharedTransport != NULL); - m_sharedTransport->setCrc16(crcImpl); -} - -Crc16 *TransportArbitrator::getCrc16(void) -{ - erpc_assert(m_sharedTransport != NULL); - return m_sharedTransport->getCrc16(); -} - -bool TransportArbitrator::hasMessage(void) -{ - erpc_assert((m_sharedTransport != NULL) && ("shared transport is not set" != NULL)); - - return m_sharedTransport->hasMessage(); + return m_sharedTransport->reserveHeaderSize(); } erpc_status_t TransportArbitrator::receive(MessageBuffer *message) @@ -151,6 +136,46 @@ erpc_status_t TransportArbitrator::send(MessageBuffer *message) return m_sharedTransport->send(message); } +bool TransportArbitrator::hasMessage(void) +{ + erpc_assert((m_sharedTransport != NULL) && ("shared transport is not set" != NULL)); + + return m_sharedTransport->hasMessage(); +} + +void TransportArbitrator::setCrc16(Crc16 *crcImpl) +{ + erpc_assert(crcImpl != NULL); + erpc_assert(m_sharedTransport != NULL); + m_sharedTransport->setCrc16(crcImpl); +} + +Crc16 *TransportArbitrator::getCrc16(void) +{ + erpc_assert(m_sharedTransport != NULL); + return m_sharedTransport->getCrc16(); +} + +void TransportArbitrator::setSharedTransport(Transport *shared) +{ + m_sharedTransport = shared; +} + +Transport *TransportArbitrator::getSharedTransport(void) +{ + return m_sharedTransport; +} + +void TransportArbitrator::setCodec(Codec *codec) +{ + m_codec = codec; +} + +Codec *TransportArbitrator::getCodec(void) +{ + return m_codec; +} + TransportArbitrator::client_token_t TransportArbitrator::prepareClientReceive(RequestContext &request) { PendingClientInfo *info = addPendingClient(); diff --git a/erpc_c/infra/erpc_transport_arbitrator.hpp b/erpc_c/infra/erpc_transport_arbitrator.hpp index 50e29432..3077d500 100644 --- a/erpc_c/infra/erpc_transport_arbitrator.hpp +++ b/erpc_c/infra/erpc_transport_arbitrator.hpp @@ -58,46 +58,79 @@ class TransportArbitrator : public Transport * * @return uint8_t Amount of bytes, reserved before serialized data. */ - virtual uint8_t reserveHeaderSize(void) override { return m_sharedTransport->reserveHeaderSize(); } + virtual uint8_t reserveHeaderSize(void) override; + + /*! + * @brief Prototype for receiving message. + * + * Each transport layer need define this function. + * + * @param[out] message Will return pointer to received message buffer. + * + * @return based on receive implementation. + */ + virtual erpc_status_t receive(MessageBuffer *message) override; + + /*! + * @brief Prototype for send message. + * + * Each transport layer need define this function. + * + * @param[in] message Pass message buffer to send. + * + * @return based on send implementation. + */ + virtual erpc_status_t send(MessageBuffer *message) override; + + /*! + * @brief Check if the underlying shared transport has a message + * + * @retval The underlying transport is expected to return true when a message is available to + * process and false otherwise. + */ + virtual bool hasMessage(void) override; + + /*! + * @brief This functions sets the CRC-16 implementation. + * + * @param[in] crcImpl Object containing crc-16 compute function. + */ + virtual void setCrc16(Crc16 *crcImpl) override; + + /*! + * @brief This functions gets the CRC-16 object. + * + * @return Crc16* Pointer to CRC-16 object containing crc-16 compute function. + */ + virtual Crc16 * getCrc16(void) override; /*! * @brief This function set shared client/server transport. * * @param[in] shared Shared client/server transport. */ - void setSharedTransport(Transport *shared) { m_sharedTransport = shared; } + void setSharedTransport(Transport *shared); /*! * @brief This function returns shared client/server transport. * * @return Transport * Returns shared client/server transport. */ - Transport * getSharedTransport(void) { return m_sharedTransport; } + Transport * getSharedTransport(void); /*! * @brief This function set codec. * * @param[in] codec Codec. */ - void setCodec(Codec *codec) { m_codec = codec; } + void setCodec(Codec *codec); /*! * @brief This function get codec. * * @return Codec * Pointer to codec used within transport. */ - Codec * getCodec(void) { return m_codec; } - - /*! - * @brief Prototype for receiving message. - * - * Each transport layer need define this function. - * - * @param[out] message Will return pointer to received message buffer. - * - * @return based on receive implementation. - */ - virtual erpc_status_t receive(MessageBuffer *message) override; + Codec * getCodec(void); /*! * @brief Add a client request to the client list. @@ -124,39 +157,6 @@ class TransportArbitrator : public Transport */ erpc_status_t clientReceive(client_token_t token); - /*! - * @brief Prototype for send message. - * - * Each transport layer need define this function. - * - * @param[in] message Pass message buffer to send. - * - * @return based on send implementation. - */ - virtual erpc_status_t send(MessageBuffer *message) override; - - /*! - * @brief This functions sets the CRC-16 implementation. - * - * @param[in] crcImpl Object containing crc-16 compute function. - */ - virtual void setCrc16(Crc16 *crcImpl) override; - - /*! - * @brief This functions gets the CRC-16 object. - * - * @return Crc16* Pointer to CRC-16 object containing crc-16 compute function. - */ - virtual Crc16 * getCrc16(void) override; - - /*! - * @brief Check if the underlying shared transport has a message - * - * @retval The underlying transport is expected to return true when a message is available to - * process and false otherwise. - */ - virtual bool hasMessage(void) override; - /*! * @brief Request info for a client trying to receive a response. */ diff --git a/erpc_c/transports/erpc_dspi_master_transport.hpp b/erpc_c/transports/erpc_dspi_master_transport.hpp index 3605542d..629fdd82 100644 --- a/erpc_c/transports/erpc_dspi_master_transport.hpp +++ b/erpc_c/transports/erpc_dspi_master_transport.hpp @@ -72,7 +72,7 @@ class DspiMasterTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed DSPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to DSPI peripheral. @@ -83,7 +83,7 @@ class DspiMasterTransport : public FramedTransport * @retval kErpcStatus_SendFailed DSPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_dspi_slave_transport.hpp b/erpc_c/transports/erpc_dspi_slave_transport.hpp index f9d8039a..27dbf0a2 100644 --- a/erpc_c/transports/erpc_dspi_slave_transport.hpp +++ b/erpc_c/transports/erpc_dspi_slave_transport.hpp @@ -87,7 +87,7 @@ class DspiSlaveTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed DSPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to DSPI peripheral. @@ -98,7 +98,7 @@ class DspiSlaveTransport : public FramedTransport * @retval kErpcStatus_SendFailed DSPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_i2c_slave_transport.hpp b/erpc_c/transports/erpc_i2c_slave_transport.hpp index 425b2807..84b67edd 100644 --- a/erpc_c/transports/erpc_i2c_slave_transport.hpp +++ b/erpc_c/transports/erpc_i2c_slave_transport.hpp @@ -87,7 +87,7 @@ class I2cSlaveTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed I2C failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to I2C peripheral. @@ -98,7 +98,7 @@ class I2cSlaveTransport : public FramedTransport * @retval kErpcStatus_SendFailed I2C failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_inter_thread_buffer_transport.hpp b/erpc_c/transports/erpc_inter_thread_buffer_transport.hpp index 907a92f0..655aba2d 100644 --- a/erpc_c/transports/erpc_inter_thread_buffer_transport.hpp +++ b/erpc_c/transports/erpc_inter_thread_buffer_transport.hpp @@ -57,8 +57,8 @@ class InterThreadBufferTransport : public Transport void linkWithPeer(InterThreadBufferTransport *peer); - virtual erpc_status_t receive(MessageBuffer *message); - virtual erpc_status_t send(MessageBuffer *message); + virtual erpc_status_t receive(MessageBuffer *message)override; + virtual erpc_status_t send(MessageBuffer *message)override; virtual int32_t getAvailable(void) const { return 0; } diff --git a/erpc_c/transports/erpc_lpi2c_slave_transport.hpp b/erpc_c/transports/erpc_lpi2c_slave_transport.hpp index 407ed7ac..b047daef 100644 --- a/erpc_c/transports/erpc_lpi2c_slave_transport.hpp +++ b/erpc_c/transports/erpc_lpi2c_slave_transport.hpp @@ -86,7 +86,7 @@ class LPI2cSlaveTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed LPI2C failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to LPI2C peripheral. @@ -97,7 +97,7 @@ class LPI2cSlaveTransport : public FramedTransport * @retval kErpcStatus_SendFailed LPI2C failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_lpspi_slave_transport.hpp b/erpc_c/transports/erpc_lpspi_slave_transport.hpp index 7c5c726a..e7a12000 100644 --- a/erpc_c/transports/erpc_lpspi_slave_transport.hpp +++ b/erpc_c/transports/erpc_lpspi_slave_transport.hpp @@ -87,7 +87,7 @@ class LPSpiSlaveTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed LPSPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to LPSPI peripheral. @@ -98,7 +98,7 @@ class LPSpiSlaveTransport : public FramedTransport * @retval kErpcStatus_SendFailed LPSPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_mu_transport.cpp b/erpc_c/transports/erpc_mu_transport.cpp index 15de63f8..e6c64a63 100644 --- a/erpc_c/transports/erpc_mu_transport.cpp +++ b/erpc_c/transports/erpc_mu_transport.cpp @@ -287,6 +287,11 @@ erpc_status_t MUTransport::send(MessageBuffer *message) return status; } +bool MUTransport::hasMessage(void) +{ + return m_newMessage; +} + extern "C" { #if ERPC_TRANSPORT_MU_USE_MCMGR diff --git a/erpc_c/transports/erpc_mu_transport.hpp b/erpc_c/transports/erpc_mu_transport.hpp index 16a819e1..2c3602ec 100644 --- a/erpc_c/transports/erpc_mu_transport.hpp +++ b/erpc_c/transports/erpc_mu_transport.hpp @@ -127,7 +127,7 @@ class MUTransport : public Transport * * @return kErpcStatus_Success */ - virtual erpc_status_t receive(MessageBuffer *message); + virtual erpc_status_t receive(MessageBuffer *message) override; /*! * @brief Function to send prepared message. @@ -137,7 +137,7 @@ class MUTransport : public Transport * @retval kErpcStatus_SendFailed Failed to send message buffer. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t send(MessageBuffer *message); + virtual erpc_status_t send(MessageBuffer *message) override; /*! * @brief Function to check if is new message to receive. @@ -146,7 +146,7 @@ class MUTransport : public Transport * * @return True if exist new message, else false. */ - virtual bool hasMessage(void) { return m_newMessage; } + virtual bool hasMessage(void) override; #if ERPC_TRANSPORT_MU_USE_MCMGR /*! diff --git a/erpc_c/transports/erpc_rpmsg_linux_transport.hpp b/erpc_c/transports/erpc_rpmsg_linux_transport.hpp index ce13725c..b66dc8ab 100644 --- a/erpc_c/transports/erpc_rpmsg_linux_transport.hpp +++ b/erpc_c/transports/erpc_rpmsg_linux_transport.hpp @@ -56,7 +56,7 @@ class RPMsgLinuxTransport : public Transport * @retval kErpcStatus_Success When message was received successfully. * @retval kErpcStatus_Fail When message wasn't received successfully. */ - virtual erpc_status_t receive(MessageBuffer *message); + virtual erpc_status_t receive(MessageBuffer *message) override; /*! * @brief This function sends the eRPC messages. @@ -66,7 +66,7 @@ class RPMsgLinuxTransport : public Transport * @retval kErpcStatus_Success When message was sent successfully. * @retval kErpcStatus_Fail When message wasn't sent successfully. */ - virtual erpc_status_t send(MessageBuffer *message); + virtual erpc_status_t send(MessageBuffer *message) override; private: RPMsgEndpoint *m_endPoint; /*!< Object operating with endpoints. */ diff --git a/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.cpp b/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.cpp index b4d0166c..8eb1350b 100644 --- a/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.cpp +++ b/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.cpp @@ -73,17 +73,6 @@ RPMsgRTOSTransport::~RPMsgRTOSTransport(void) } } -void RPMsgRTOSTransport::setCrc16(Crc16 *crcImpl) -{ - erpc_assert(crcImpl != NULL); - m_crcImpl = crcImpl; -} - -Crc16 *RPMsgRTOSTransport::getCrc16(void) -{ - return m_crcImpl; -} - erpc_status_t RPMsgRTOSTransport::init(uint32_t src_addr, uint32_t dst_addr, void *base_address, uint32_t length, uint32_t rpmsg_link_id) { @@ -290,3 +279,19 @@ erpc_status_t RPMsgRTOSTransport::send(MessageBuffer *message) return status; } + +bool RPMsgRTOSTransport::hasMessage(void) +{ + return ((rpmsg_queue_get_current_size(m_rpmsg_queue) > 0) ? true : false); +} + +void RPMsgRTOSTransport::setCrc16(Crc16 *crcImpl) +{ + erpc_assert(crcImpl != NULL); + m_crcImpl = crcImpl; +} + +Crc16 *RPMsgRTOSTransport::getCrc16(void) +{ + return m_crcImpl; +} diff --git a/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.hpp b/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.hpp index 394299cf..8bbd6547 100644 --- a/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.hpp +++ b/erpc_c/transports/erpc_rpmsg_lite_rtos_transport.hpp @@ -40,7 +40,7 @@ namespace erpc { * * @ingroup rpmsg_lite_rtos_transport */ -class RPMsgRTOSTransport : public RPMsgBase, public Transport +class RPMsgRTOSTransport : public Transport, public RPMsgBase { public: /*! @@ -109,27 +109,28 @@ class RPMsgRTOSTransport : public RPMsgBase, public Transport */ virtual erpc_status_t send(MessageBuffer *message) override; + /*! + * @brief Function to check if is message in receive queue and wait for processing. + * + * This function should be called before function receive() to avoid waiting for new message. + * + * @return True if exist received message, else false. + */ + virtual bool hasMessage(void) override; + /*! * @brief This functions sets the CRC-16 implementation. * * @param[in] crcImpl Object containing crc-16 compute function. */ - virtual void setCrc16(Crc16 *crcImpl); + virtual void setCrc16(Crc16 *crcImpl) override; /*! * @brief This functions gets the CRC-16 object. * * @return Crc16* Pointer to CRC-16 object containing crc-16 compute function. */ - virtual Crc16 *getCrc16(void); - /*! - * @brief Function to check if is message in receive queue and wait for processing. - * - * This function should be called before function receive() to avoid waiting for new message. - * - * @return True if exist received message, else false. - */ - virtual bool hasMessage(void) { return ((rpmsg_queue_get_current_size(m_rpmsg_queue) > 0) ? true : false); } + virtual Crc16 *getCrc16(void) override; protected: /* Remote device */ diff --git a/erpc_c/transports/erpc_rpmsg_lite_transport.cpp b/erpc_c/transports/erpc_rpmsg_lite_transport.cpp index c305ed3d..729c50ad 100644 --- a/erpc_c/transports/erpc_rpmsg_lite_transport.cpp +++ b/erpc_c/transports/erpc_rpmsg_lite_transport.cpp @@ -73,17 +73,6 @@ RPMsgTransport::~RPMsgTransport(void) } } -void RPMsgTransport::setCrc16(Crc16 *crcImpl) -{ - erpc_assert(crcImpl != NULL); - m_crcImpl = crcImpl; -} - -Crc16 *RPMsgTransport::getCrc16(void) -{ - return m_crcImpl; -} - erpc_status_t RPMsgTransport::init(uint32_t src_addr, uint32_t dst_addr, void *base_address, uint32_t length, uint32_t rpmsg_link_id) { @@ -228,3 +217,19 @@ erpc_status_t RPMsgTransport::send(MessageBuffer *message) return (ret_val != RL_SUCCESS) ? kErpcStatus_SendFailed : kErpcStatus_Success; } + +bool RPMsgTransport::hasMessage(void) +{ + return ((0UL < m_messageQueue.size()) ? true : false); +} + +void RPMsgTransport::setCrc16(Crc16 *crcImpl) +{ + erpc_assert(crcImpl != NULL); + m_crcImpl = crcImpl; +} + +Crc16 *RPMsgTransport::getCrc16(void) +{ + return m_crcImpl; +} diff --git a/erpc_c/transports/erpc_rpmsg_lite_transport.hpp b/erpc_c/transports/erpc_rpmsg_lite_transport.hpp index 6050fad0..78738a8f 100644 --- a/erpc_c/transports/erpc_rpmsg_lite_transport.hpp +++ b/erpc_c/transports/erpc_rpmsg_lite_transport.hpp @@ -113,27 +113,28 @@ class RPMsgTransport : public Transport, public RPMsgBase */ virtual erpc_status_t send(MessageBuffer *message) override; + /*! + * @brief Function to check if is message in receive queue and wait for processing. + * + * This function should be called before function receive() to avoid waiting for new message. + * + * @return True if exist received message, else false. + */ + virtual bool hasMessage(void) override; + /*! * @brief This functions sets the CRC-16 implementation. * * @param[in] crcImpl Object containing crc-16 compute function. */ - virtual void setCrc16(Crc16 *crcImpl); + virtual void setCrc16(Crc16 *crcImpl) override; /*! * @brief This functions gets the CRC-16 object. * * @return Crc16* Pointer to CRC-16 object containing crc-16 compute function. */ - virtual Crc16 *getCrc16(void); - /*! - * @brief Function to check if is message in receive queue and wait for processing. - * - * This function should be called before function receive() to avoid waiting for new message. - * - * @return True if exist received message, else false. - */ - virtual bool hasMessage(void) { return ((0UL < m_messageQueue.size()) ? true : false); } + virtual Crc16 *getCrc16(void) override; protected: /*! diff --git a/erpc_c/transports/erpc_serial_transport.hpp b/erpc_c/transports/erpc_serial_transport.hpp index ea0033bb..f9fc75a0 100644 --- a/erpc_c/transports/erpc_serial_transport.hpp +++ b/erpc_c/transports/erpc_serial_transport.hpp @@ -74,7 +74,7 @@ class SerialTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed Serial failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; /*! * @brief Receive data from Serial peripheral. @@ -85,7 +85,7 @@ class SerialTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed Serial failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; private: int m_serialHandle; /*!< Serial handle id. */ diff --git a/erpc_c/transports/erpc_spi_master_transport.hpp b/erpc_c/transports/erpc_spi_master_transport.hpp index e90e27a2..ea2650f8 100644 --- a/erpc_c/transports/erpc_spi_master_transport.hpp +++ b/erpc_c/transports/erpc_spi_master_transport.hpp @@ -74,7 +74,7 @@ class SpiMasterTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed SPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to SPI peripheral. @@ -85,7 +85,7 @@ class SpiMasterTransport : public FramedTransport * @retval kErpcStatus_SendFailed SPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_spi_slave_transport.hpp b/erpc_c/transports/erpc_spi_slave_transport.hpp index bc4e22b9..3559bbc4 100644 --- a/erpc_c/transports/erpc_spi_slave_transport.hpp +++ b/erpc_c/transports/erpc_spi_slave_transport.hpp @@ -88,7 +88,7 @@ class SpiSlaveTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed SPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to SPI peripheral. @@ -99,7 +99,7 @@ class SpiSlaveTransport : public FramedTransport * @retval kErpcStatus_SendFailed SPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_spidev_master_transport.hpp b/erpc_c/transports/erpc_spidev_master_transport.hpp index 1af54c34..84ca26b0 100644 --- a/erpc_c/transports/erpc_spidev_master_transport.hpp +++ b/erpc_c/transports/erpc_spidev_master_transport.hpp @@ -65,7 +65,7 @@ class SpidevMasterTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed SPI failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to SPI peripheral. @@ -76,7 +76,7 @@ class SpidevMasterTransport : public FramedTransport * @retval kErpcStatus_SendFailed SPI failed to send data. * @retval kErpcStatus_Success Successfully sent all data. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_tcp_transport.hpp b/erpc_c/transports/erpc_tcp_transport.hpp index 8bb74d4f..af2c660b 100644 --- a/erpc_c/transports/erpc_tcp_transport.hpp +++ b/erpc_c/transports/erpc_tcp_transport.hpp @@ -115,7 +115,7 @@ class TCPTransport : public FramedTransport * @retval #kErpcStatus_ReceiveFailed When reading data ends with error. * @retval #kErpcStatus_ConnectionClosed Peer closed the connection. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief This function writes data. @@ -127,7 +127,7 @@ class TCPTransport : public FramedTransport * @retval #kErpcStatus_SendFailed When writing data ends with error. * @retval #kErpcStatus_ConnectionClosed Peer closed the connection. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; /*! * @brief Server thread function. diff --git a/erpc_c/transports/erpc_uart_cmsis_transport.hpp b/erpc_c/transports/erpc_uart_cmsis_transport.hpp index 42e5e831..d36a5b85 100644 --- a/erpc_c/transports/erpc_uart_cmsis_transport.hpp +++ b/erpc_c/transports/erpc_uart_cmsis_transport.hpp @@ -92,7 +92,7 @@ class UartTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed UART failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to UART peripheral. @@ -102,7 +102,7 @@ class UartTransport : public FramedTransport * * @retval kErpcStatus_Success Always returns success status. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc diff --git a/erpc_c/transports/erpc_usb_cdc_transport.hpp b/erpc_c/transports/erpc_usb_cdc_transport.hpp index ee4abf69..c712975a 100644 --- a/erpc_c/transports/erpc_usb_cdc_transport.hpp +++ b/erpc_c/transports/erpc_usb_cdc_transport.hpp @@ -105,7 +105,7 @@ class UsbCdcTransport : public FramedTransport * @retval kErpcStatus_ReceiveFailed USB CDC failed to receive data. * @retval kErpcStatus_Success Successfully received all data. */ - virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingReceive(uint8_t *data, uint32_t size) override; /*! * @brief Write data to USB CDC peripheral. @@ -115,7 +115,7 @@ class UsbCdcTransport : public FramedTransport * * @retval kErpcStatus_Success Always returns success status. */ - virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size); + virtual erpc_status_t underlyingSend(const uint8_t *data, uint32_t size) override; }; } // namespace erpc