1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
/*
* This file was generated by orbit-idl - DO NOT EDIT!
*/
#include <string.h>
#include "echo.h"
#define GET_ATOM(x) ({ GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->decoder(&x, (GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur), sizeof(x)); ((char *)GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(x); })
Echo
Echo_echoString(Echo _obj,
CORBA_char * astring,
CORBA_long * anum,
CORBA_Environment * ev)
{
GIOP_unsigned_long _ORBIT_request_id;
GIOPSendBuffer *_ORBIT_send_buffer;
GIOPRecvBuffer *_ORBIT_recv_buffer;
static const struct {
CORBA_unsigned_long len;
char opname[11];
} _ORBIT_operation_name_data = {
11, "echoString"
};
static const struct iovec _ORBIT_operation_vec =
{(gpointer) & _ORBIT_operation_name_data, 15};
Echo _ORBIT_retval;
if (_obj->servant && _obj->vepv && Echo__classid)
return ((POA_Echo__epv *) _obj->vepv[Echo__classid])->echoString(_obj->servant, astring, anum, ev);
_ORBIT_request_id = giop_get_request_id();
_ORBIT_send_buffer =
giop_send_request_buffer_use(ORBit_object_get_connection(_obj), NULL,
_ORBIT_request_id, CORBA_TRUE, &(_obj->objinfo.iopinfo->object_key_vec),
&_ORBIT_operation_vec, &ORBit_default_principal_iovec);
if (!_ORBIT_send_buffer) {
CORBA_exception_set_system(ev, ex_CORBA_COMM_FAILURE, CORBA_COMPLETED_NO);
return _ORBIT_retval;
}
/* marshal parameter astring */
{
GIOP_unsigned_long len = astring ? (strlen(astring) + 1) : 0;
giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
giop_send_buffer_append_mem_indirect(GIOP_SEND_BUFFER(_ORBIT_send_buffer), &len, sizeof(len));
if (astring)
giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), astring, len);
}
giop_send_buffer_write(_ORBIT_send_buffer);
giop_send_buffer_unuse(_ORBIT_send_buffer);
_ORBIT_recv_buffer = giop_recv_reply_buffer_use(_ORBIT_request_id, TRUE);
if (_ORBIT_recv_buffer == NULL || _ORBIT_recv_buffer->message_buffer.message_header.message_type != GIOP_REPLY) {
CORBA_exception_set_system(ev, ex_CORBA_COMM_FAILURE, CORBA_COMPLETED_MAYBE);
if (_ORBIT_recv_buffer)
giop_recv_buffer_unuse(_ORBIT_recv_buffer);
return _ORBIT_retval;
}
if (_ORBIT_recv_buffer->message.u.reply.reply_status != GIOP_NO_EXCEPTION) {
ORBit_handle_exception(_ORBIT_recv_buffer, ev, NULL);
giop_recv_buffer_unuse(_ORBIT_recv_buffer);
return _ORBIT_retval;
}
if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {
/* demarshal return value */
_ORBIT_retval = ORBit_demarshal_object(_ORBIT_recv_buffer, (_obj->orb));
/* demarshal parameter *anum */
GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
GET_ATOM(*anum);
} else {
/* demarshal return value */
_ORBIT_retval = ORBit_demarshal_object(_ORBIT_recv_buffer, (_obj->orb));
/* demarshal parameter *anum */
GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
*anum = *((CORBA_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_long);
}
giop_recv_buffer_unuse(_ORBIT_recv_buffer);
ev->_major = CORBA_NO_EXCEPTION;
return _ORBIT_retval;
}
|