/* * Generated by erpcgen 1.14.0 on Wed Dec 31 16:10:10 2025. * * AUTOGENERATED - DO NOT EDIT */ #include #include "c_head_service_server.h" #include "head_service_server.hpp" #include "erpc_manually_constructed.hpp" using namespace erpc; using namespace std; using namespace erpcShim; class demo_server: public demo_interface { public: virtual ~demo_server() {}; int32_t add(int32_t a, int32_t b) { int32_t result; result = ::add(a, b); return result; } int64_t sum_i32(const list_int32_1_t * arr) { int64_t result; result = ::sum_i32(arr); return result; } }; ERPC_MANUALLY_CONSTRUCTED_STATIC(demo_service, s_demo_service); ERPC_MANUALLY_CONSTRUCTED_STATIC(demo_server, s_demo_server); erpc_service_t create_demo_service(void) { erpc_service_t service; #if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC service = new (nothrow) demo_service(new (nothrow)demo_server()); #else if (s_demo_service.isUsed()) { service = NULL; } else { s_demo_server.construct(); s_demo_service.construct(s_demo_server.get()); service = s_demo_service.get(); } #endif return service; } void destroy_demo_service(erpc_service_t service) { #if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC if (service) { delete (demo_server *)(((demo_service *)service)->getHandler()); delete (demo_service *)service; } #else (void)service; erpc_assert(service == s_demo_service.get()); s_demo_service.destroy(); s_demo_server.destroy(); #endif }