File: echo-stubs.c

package info (click to toggle)
orbit 0.3.0-2
  • links: PTS
  • area: main
  • in suites: slink
  • size: 5,628 kB
  • ctags: 7,089
  • sloc: ansic: 89,906; sh: 5,226; yacc: 1,292; makefile: 381; lex: 223
file content (82 lines) | stat: -rw-r--r-- 3,385 bytes parent folder | download
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;
}