/* * This file was generated by orbit-idl - DO NOT EDIT! */ #include #include "echo.h" #define GET_ATOM(x) G_STMT_START{ GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->decoder(&x, (GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur), sizeof(x)); ((guchar *)GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(x); }G_STMT_END static void skel_Echo_echoString(POA_Echo * _ORBIT_servant, GIOPRecvBuffer * _ORBIT_recv_buffer, CORBA_Environment * ev, Echo(*_impl_echoString) (PortableServer_Servant servant, const CORBA_char * astring, CORBA_long * anum, CORBA_Environment * ev)) { CORBA_char *astring; CORBA_long anum; Echo _ORBIT_retval; GIOPSendBuffer *_ORBIT_send_buffer; if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) { /* demarshal parameter astring */ { GIOP_unsigned_long len; GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4); GET_ATOM(len); astring = len ? (GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) : (((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) - sizeof(CORBA_unsigned_long)); ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += len; } } else { /* demarshal parameter astring */ { GIOP_unsigned_long len; GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4); len = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur); ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long); astring = len ? (GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) : (((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) - sizeof(CORBA_unsigned_long)); ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += len; } } _ORBIT_retval = _impl_echoString(_ORBIT_servant, astring, &(anum), ev); _ORBIT_send_buffer = giop_send_reply_buffer_use(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer)->connection, NULL, _ORBIT_recv_buffer->message.u.request.request_id, ev->_major); if (ev->_major == CORBA_NO_EXCEPTION) { /* marshal return value */ ORBit_marshal_object(_ORBIT_send_buffer, _ORBIT_retval); /* marshal parameter anum */ giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4); giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &anum, sizeof(anum)); } else if (ev->_major == CORBA_SYSTEM_EXCEPTION) ORBit_send_system_exception(_ORBIT_send_buffer, ev); else if (ev->_major == CORBA_USER_EXCEPTION) ORBit_send_user_exception(_ORBIT_send_buffer, ev, NULL); giop_send_buffer_write(_ORBIT_send_buffer); giop_send_buffer_unuse(_ORBIT_send_buffer); if (ev->_major == CORBA_NO_EXCEPTION) CORBA_Object_release(_ORBIT_retval, ev); } static ORBitSkeleton get_skel_Echo(POA_Echo * servant, GIOPRecvBuffer * _ORBIT_recv_buffer, gpointer * impl) { gchar *opname = _ORBIT_recv_buffer->message.u.request.operation; switch (opname[0]) { case 'e': *impl = servant->vepv->Echo_epv->echoString; return (gpointer) skel_Echo_echoString; break; default: return NULL; } } static void init_local_objref_Echo(CORBA_Object obj, POA_Echo * servant) { obj->vepv[Echo__classid] = servant->vepv->Echo_epv; } void POA_Echo__init(POA_Echo * servant, CORBA_Environment * env) { static const PortableServer_ClassInfo class_info = {(gpointer) & get_skel_Echo, "IDL:Echo:1.0", (gpointer) & init_local_objref_Echo}; PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env); ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info; if (!Echo__classid) Echo__classid = ORBit_register_class(&class_info); } void POA_Echo__fini(POA_Echo * servant, CORBA_Environment * env) { PortableServer_ServantBase__fini(servant, env); }