/* * Generated by erpcgen 1.14.0 on Wed Dec 24 14:07:39 2025. * * AUTOGENERATED - DO NOT EDIT */ #include "head_service_server.hpp" #if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC #include #include "erpc_port.h" #endif #include "erpc_manually_constructed.hpp" #if 11400 != ERPC_VERSION_NUMBER #error "The generated shim code version is different to the rest of eRPC code." #endif using namespace erpc; using namespace std; using namespace erpcShim; #if ERPC_NESTED_CALLS_DETECTION extern bool nestingDetection; #endif demo_service::demo_service(demo_interface *_demo_interface) : erpc::Service(demo_interface::m_serviceId) , m_handler(_demo_interface) { } demo_service::~demo_service() { } // return service interface handler. demo_interface* demo_service::getHandler(void) { return m_handler; } // Call the correct server shim based on method unique ID. erpc_status_t demo_service::handleInvocation(uint32_t methodId, uint32_t sequence, Codec * codec, MessageBufferFactory *messageFactory, Transport * transport) { erpc_status_t erpcStatus; switch (methodId) { case demo_interface::m_addId: { erpcStatus = add_shim(codec, messageFactory, transport, sequence); break; } default: { erpcStatus = kErpcStatus_InvalidArgument; break; } } return erpcStatus; } // Server shim for add of demo interface. erpc_status_t demo_service::add_shim(Codec * codec, MessageBufferFactory *messageFactory, Transport * transport, uint32_t sequence) { erpc_status_t err = kErpcStatus_Success; int32_t a; int32_t b; int32_t result; // startReadMessage() was already called before this shim was invoked. codec->read(a); codec->read(b); err = codec->getStatus(); if (err == kErpcStatus_Success) { // Invoke the actual served function. #if ERPC_NESTED_CALLS_DETECTION nestingDetection = true; #endif result = m_handler->add(a, b); #if ERPC_NESTED_CALLS_DETECTION nestingDetection = false; #endif // preparing MessageBuffer for serializing data err = messageFactory->prepareServerBufferForSend(codec->getBufferRef(), transport->reserveHeaderSize()); } if (err == kErpcStatus_Success) { // preparing codec for serializing data codec->reset(transport->reserveHeaderSize()); // Build response message. codec->startWriteMessage(message_type_t::kReplyMessage, demo_interface::m_serviceId, demo_interface::m_addId, sequence); codec->write(result); err = codec->getStatus(); } return err; }