/*
 * This file was generated by orbit-idl - DO NOT EDIT!
 */

#include <string.h>
#include "interface_repository.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

/***************** Begin module CORBA ***************/

static void
skel_CORBA_IRObject__get_def_kind(POA_CORBA_IRObject * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
 CORBA_DefinitionKind(*_impl__get_def_kind) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_DefinitionKind _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_def_kind(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_IRObject_destroy(POA_CORBA_IRObject * _ORBIT_servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    CORBA_Environment * ev,
		      void (*_impl_destroy) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   GIOPSendBuffer *_ORBIT_send_buffer;

   _impl_destroy(_ORBIT_servant, 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) {
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_IRObject(POA_CORBA_IRObject * servant,
			GIOPRecvBuffer * _ORBIT_recv_buffer,
			gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
	return (gpointer) skel_CORBA_IRObject__get_def_kind;
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_IRObject(CORBA_Object obj, POA_CORBA_IRObject * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
}

void 
POA_CORBA_IRObject__init(POA_CORBA_IRObject * servant,
			 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_IRObject, "IDL:omg.org/CORBA/IRObject:1.0", (gpointer) & init_local_objref_CORBA_IRObject};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_IRObject__classid)
      CORBA_IRObject__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_IRObject__fini(POA_CORBA_IRObject * servant,
			 CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_Contained__get_id(POA_CORBA_Contained * _ORBIT_servant,
			     GIOPRecvBuffer * _ORBIT_recv_buffer,
			     CORBA_Environment * ev,
	 CORBA_RepositoryId(*_impl__get_id) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_id(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long len = _ORBIT_retval ? (strlen(_ORBIT_retval) + 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 (_ORBIT_retval)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), _ORBIT_retval, len);
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Contained__set_id(POA_CORBA_Contained * _ORBIT_servant,
			     GIOPRecvBuffer * _ORBIT_recv_buffer,
			     CORBA_Environment * ev,
		      void (*_impl__set_id) (PortableServer_Servant servant,
					     const CORBA_RepositoryId value,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 value = 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 value */
      {
	 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);
	 value = 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;
      }
   }

   _impl__set_id(_ORBIT_servant, value,
		 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) {
   } 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);
}

static void
skel_CORBA_Contained__get_name(POA_CORBA_Contained * _ORBIT_servant,
			       GIOPRecvBuffer * _ORBIT_recv_buffer,
			       CORBA_Environment * ev,
	 CORBA_Identifier(*_impl__get_name) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_Identifier _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_name(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long len = _ORBIT_retval ? (strlen(_ORBIT_retval) + 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 (_ORBIT_retval)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), _ORBIT_retval, len);
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Contained__set_name(POA_CORBA_Contained * _ORBIT_servant,
			       GIOPRecvBuffer * _ORBIT_recv_buffer,
			       CORBA_Environment * ev,
		    void (*_impl__set_name) (PortableServer_Servant servant,
					     const CORBA_Identifier value,
					     CORBA_Environment * ev))
{
   CORBA_Identifier value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 value = 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 value */
      {
	 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);
	 value = 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;
      }
   }

   _impl__set_name(_ORBIT_servant, value,
		   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) {
   } 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);
}

static void
skel_CORBA_Contained__get_version(POA_CORBA_Contained * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
     CORBA_VersionSpec(*_impl__get_version) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_VersionSpec _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_version(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long len = _ORBIT_retval ? (strlen(_ORBIT_retval) + 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 (_ORBIT_retval)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), _ORBIT_retval, len);
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Contained__set_version(POA_CORBA_Contained * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		 void (*_impl__set_version) (PortableServer_Servant servant,
					     const CORBA_VersionSpec value,
					     CORBA_Environment * ev))
{
   CORBA_VersionSpec value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 value = 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 value */
      {
	 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);
	 value = 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;
      }
   }

   _impl__set_version(_ORBIT_servant, value,
		      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) {
   } 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);
}

static void
skel_CORBA_Contained__get_defined_in(POA_CORBA_Contained * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
    CORBA_Container(*_impl__get_defined_in) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_Container _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_defined_in(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_Contained__get_absolute_name(POA_CORBA_Contained * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
CORBA_ScopedName(*_impl__get_absolute_name) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_ScopedName _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_absolute_name(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long len = _ORBIT_retval ? (strlen(_ORBIT_retval) + 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 (_ORBIT_retval)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), _ORBIT_retval, len);
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Contained__get_containing_repository(POA_CORBA_Contained * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						CORBA_Environment * ev,
						CORBA_Repository(*_impl__get_containing_repository) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_Repository _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_containing_repository(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_Contained_describe(POA_CORBA_Contained * _ORBIT_servant,
			      GIOPRecvBuffer * _ORBIT_recv_buffer,
			      CORBA_Environment * ev,
			      CORBA_Contained_Description * (*_impl_describe) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_Contained_Description *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_describe(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval).kind, sizeof((*_ORBIT_retval).kind));
      ORBit_marshal_any(_ORBIT_send_buffer, &((*_ORBIT_retval).value));
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Contained_move(POA_CORBA_Contained * _ORBIT_servant,
			  GIOPRecvBuffer * _ORBIT_recv_buffer,
			  CORBA_Environment * ev,
			  void (*_impl_move) (PortableServer_Servant servant,
					const CORBA_Container new_container,
					    const CORBA_Identifier new_name,
					const CORBA_VersionSpec new_version,
					      CORBA_Environment * ev))
{
   CORBA_Container new_container;
   CORBA_Identifier new_name;
   CORBA_VersionSpec new_version;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter new_container */
      new_container = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter new_name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 new_name = 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;
      }

      /* demarshal parameter new_version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 new_version = 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 new_container */
      new_container = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter new_name */
      {
	 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);
	 new_name = 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;
      }

      /* demarshal parameter new_version */
      {
	 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);
	 new_version = 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;
      }
   }

   _impl_move(_ORBIT_servant, new_container,
	      new_name,
	      new_version,
	      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) {
   } 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);
   CORBA_Object_release(new_container, ev);
}

static ORBitSkeleton 
get_skel_CORBA_Contained(POA_CORBA_Contained * servant,
			 GIOPRecvBuffer * _ORBIT_recv_buffer,
			 gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_Contained(CORBA_Object obj, POA_CORBA_Contained * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
}

void 
POA_CORBA_Contained__init(POA_CORBA_Contained * servant,
			  CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_Contained, "IDL:omg.org/CORBA/Contained:1.0", (gpointer) & init_local_objref_CORBA_Contained};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IRObject__init(((POA_CORBA_IRObject *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_Contained__classid)
      CORBA_Contained__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_Contained__fini(POA_CORBA_Contained * servant,
			  CORBA_Environment * env)
{
   POA_CORBA_IRObject__fini(((POA_CORBA_IRObject *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_Container_lookup(POA_CORBA_Container * _ORBIT_servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    CORBA_Environment * ev,
	     CORBA_Contained(*_impl_lookup) (PortableServer_Servant servant,
					 const CORBA_ScopedName search_name,
					     CORBA_Environment * ev))
{
   CORBA_ScopedName search_name;
   CORBA_Contained _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter search_name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 search_name = 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 search_name */
      {
	 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);
	 search_name = 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_lookup(_ORBIT_servant, search_name,
				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);
   } 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 void
skel_CORBA_Container_contents(POA_CORBA_Container * _ORBIT_servant,
			      GIOPRecvBuffer * _ORBIT_recv_buffer,
			      CORBA_Environment * ev,
     CORBA_ContainedSeq * (*_impl_contents) (PortableServer_Servant servant,
				      const CORBA_DefinitionKind limit_type,
				      const CORBA_boolean exclude_inherited,
					     CORBA_Environment * ev))
{
   CORBA_DefinitionKind limit_type;
   CORBA_boolean exclude_inherited;
   CORBA_ContainedSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter limit_type */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(limit_type);

      /* demarshal parameter exclude_inherited */
      GET_ATOM(exclude_inherited);
   } else {

      /* demarshal parameter limit_type */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      limit_type = *((CORBA_DefinitionKind *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_DefinitionKind);

      /* demarshal parameter exclude_inherited */
      exclude_inherited = *((CORBA_boolean *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_boolean);
   }

   _ORBIT_retval = _impl_contents(_ORBIT_servant, limit_type,
				  exclude_inherited,
				  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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    ORBit_marshal_object(_ORBIT_send_buffer, (*_ORBIT_retval)._buffer[i1]);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Container_lookup_name(POA_CORBA_Container * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
  CORBA_ContainedSeq * (*_impl_lookup_name) (PortableServer_Servant servant,
					 const CORBA_Identifier search_name,
					  const CORBA_long levels_to_search,
				      const CORBA_DefinitionKind limit_type,
				      const CORBA_boolean exclude_inherited,
					     CORBA_Environment * ev))
{
   CORBA_Identifier search_name;
   CORBA_long levels_to_search;
   CORBA_DefinitionKind limit_type;
   CORBA_boolean exclude_inherited;
   CORBA_ContainedSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter search_name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 search_name = 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;
      }

      /* demarshal parameter levels_to_search */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(levels_to_search);

      /* demarshal parameter limit_type */
      GET_ATOM(limit_type);

      /* demarshal parameter exclude_inherited */
      GET_ATOM(exclude_inherited);
   } else {

      /* demarshal parameter search_name */
      {
	 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);
	 search_name = 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;
      }

      /* demarshal parameter levels_to_search */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      levels_to_search = *((CORBA_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_long);

      /* demarshal parameter limit_type */
      limit_type = *((CORBA_DefinitionKind *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_DefinitionKind);

      /* demarshal parameter exclude_inherited */
      exclude_inherited = *((CORBA_boolean *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_boolean);
   }

   _ORBIT_retval = _impl_lookup_name(_ORBIT_servant, search_name,
				     levels_to_search,
				     limit_type,
				     exclude_inherited,
				     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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    ORBit_marshal_object(_ORBIT_send_buffer, (*_ORBIT_retval)._buffer[i1]);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Container_describe_contents(POA_CORBA_Container * _ORBIT_servant,
				       GIOPRecvBuffer * _ORBIT_recv_buffer,
				       CORBA_Environment * ev,
				       CORBA_Container_DescriptionSeq * (*_impl_describe_contents) (PortableServer_Servant servant,
				      const CORBA_DefinitionKind limit_type,
				      const CORBA_boolean exclude_inherited,
					 const CORBA_long max_returned_objs,
						    CORBA_Environment * ev))
{
   CORBA_DefinitionKind limit_type;
   CORBA_boolean exclude_inherited;
   CORBA_long max_returned_objs;
   CORBA_Container_DescriptionSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter limit_type */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(limit_type);

      /* demarshal parameter exclude_inherited */
      GET_ATOM(exclude_inherited);

      /* demarshal parameter max_returned_objs */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(max_returned_objs);
   } else {

      /* demarshal parameter limit_type */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      limit_type = *((CORBA_DefinitionKind *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_DefinitionKind);

      /* demarshal parameter exclude_inherited */
      exclude_inherited = *((CORBA_boolean *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_boolean);

      /* demarshal parameter max_returned_objs */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      max_returned_objs = *((CORBA_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_long);
   }

   _ORBIT_retval = _impl_describe_contents(_ORBIT_servant, limit_type,
					   exclude_inherited,
					   max_returned_objs,
					   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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    ORBit_marshal_object(_ORBIT_send_buffer, ((*_ORBIT_retval)._buffer[i1]).contained_object);
	    giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((*_ORBIT_retval)._buffer[i1]).kind, sizeof(((*_ORBIT_retval)._buffer[i1]).kind));
	    ORBit_marshal_any(_ORBIT_send_buffer, &(((*_ORBIT_retval)._buffer[i1]).value));
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_Container_create_module(POA_CORBA_Container * _ORBIT_servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   CORBA_Environment * ev,
      CORBA_ModuleDef(*_impl_create_module) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_ModuleDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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 id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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_create_module(_ORBIT_servant, id,
				       name,
				       version,
				       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);
   } 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 void
skel_CORBA_Container_create_constant(POA_CORBA_Container * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
  CORBA_ConstantDef(*_impl_create_constant) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					     const CORBA_IDLType type,
					     const CORBA_any * value,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_IDLType type;
   CORBA_any value =
   {NULL, NULL, CORBA_FALSE};
   CORBA_ConstantDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter type */
      type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter value */
      ORBit_demarshal_any(_ORBIT_recv_buffer, &(value), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter type */
      type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter value */
      ORBit_demarshal_any(_ORBIT_recv_buffer, &(value), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _ORBIT_retval = _impl_create_constant(_ORBIT_servant, id,
					 name,
					 version,
					 type,
					 &(value),
					 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);
   } 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);
   CORBA_Object_release(type, ev);
   CORBA_any__free(&value, NULL, CORBA_FALSE);
}

static void
skel_CORBA_Container_create_struct(POA_CORBA_Container * _ORBIT_servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   CORBA_Environment * ev,
      CORBA_StructDef(*_impl_create_struct) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
				      const CORBA_StructMemberSeq * members,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_StructMemberSeq members =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_StructDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((members)._length);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((members)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (members)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       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);
	       ((members)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _ORBIT_retval = _impl_create_struct(_ORBIT_servant, id,
				       name,
				       version,
				       &(members),
				       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);
   } 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);
   CORBA_StructMemberSeq__free(&members, NULL, CORBA_FALSE);
}

static void
skel_CORBA_Container_create_union(POA_CORBA_Container * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
	CORBA_UnionDef(*_impl_create_union) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
				     const CORBA_IDLType discriminator_type,
				       const CORBA_UnionMemberSeq * members,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_IDLType discriminator_type;
   CORBA_UnionMemberSeq members =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_UnionDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter discriminator_type */
      discriminator_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((members)._length);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_UnionMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((members)._buffer[i1]).name = 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_demarshal_any(_ORBIT_recv_buffer, &(((members)._buffer[i1]).label), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter discriminator_type */
      discriminator_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (members)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_UnionMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       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);
	       ((members)._buffer[i1]).name = 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_demarshal_any(_ORBIT_recv_buffer, &(((members)._buffer[i1]).label), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _ORBIT_retval = _impl_create_union(_ORBIT_servant, id,
				      name,
				      version,
				      discriminator_type,
				      &(members),
				      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);
   } 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);
   CORBA_Object_release(discriminator_type, ev);
   CORBA_UnionMemberSeq__free(&members, NULL, CORBA_FALSE);
}

static void
skel_CORBA_Container_create_enum(POA_CORBA_Container * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
	  CORBA_EnumDef(*_impl_create_enum) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					const CORBA_EnumMemberSeq * members,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_EnumMemberSeq members =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_EnumDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((members)._length);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_Identifier_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       (members)._buffer[i1] = 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 id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (members)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_Identifier_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       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);
	       (members)._buffer[i1] = 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_create_enum(_ORBIT_servant, id,
				     name,
				     version,
				     &(members),
				     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);
   } 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);
   CORBA_EnumMemberSeq__free(&members, NULL, CORBA_FALSE);
}

static void
skel_CORBA_Container_create_alias(POA_CORBA_Container * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
	CORBA_AliasDef(*_impl_create_alias) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					  const CORBA_IDLType original_type,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_IDLType original_type;
   CORBA_AliasDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter original_type */
      original_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter original_type */
      original_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _ORBIT_retval = _impl_create_alias(_ORBIT_servant, id,
				      name,
				      version,
				      original_type,
				      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);
   } 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);
   CORBA_Object_release(original_type, ev);
}

static void
skel_CORBA_Container_create_interface(POA_CORBA_Container * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
CORBA_InterfaceDef(*_impl_create_interface) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
			      const CORBA_InterfaceDefSeq * base_interfaces,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_InterfaceDefSeq base_interfaces =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_InterfaceDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter base_interfaces */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((base_interfaces)._length);
      (base_interfaces)._release = CORBA_TRUE;
      (base_interfaces)._buffer = CORBA_sequence_CORBA_InterfaceDef_allocbuf((base_interfaces)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (base_interfaces)._length; i1++) {
	    (base_interfaces)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter base_interfaces */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (base_interfaces)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (base_interfaces)._release = CORBA_TRUE;
      (base_interfaces)._buffer = CORBA_sequence_CORBA_InterfaceDef_allocbuf((base_interfaces)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (base_interfaces)._length; i1++) {
	    (base_interfaces)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _ORBIT_retval = _impl_create_interface(_ORBIT_servant, id,
					  name,
					  version,
					  &(base_interfaces),
					  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);
   } 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);
   CORBA_InterfaceDefSeq__free(&base_interfaces, NULL, CORBA_FALSE);
}

static void
skel_CORBA_Container_create_exception(POA_CORBA_Container * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
CORBA_ExceptionDef(*_impl_create_exception) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
				      const CORBA_StructMemberSeq * members,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_StructMemberSeq members =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_ExceptionDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((members)._length);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((members)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter members */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (members)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (members)._release = CORBA_TRUE;
      (members)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((members)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (members)._length; i1++) {
	    {
	       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);
	       ((members)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((members)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((members)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _ORBIT_retval = _impl_create_exception(_ORBIT_servant, id,
					  name,
					  version,
					  &(members),
					  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);
   } 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);
   CORBA_StructMemberSeq__free(&members, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_Container(POA_CORBA_Container * servant,
			 GIOPRecvBuffer * _ORBIT_recv_buffer,
			 gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
	return (gpointer) skel_CORBA_IRObject__get_def_kind;
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   *impl = servant->vepv->CORBA_Container_epv->create_alias;
					   return (gpointer) skel_CORBA_Container_create_alias;
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Container_epv->describe_contents;
		       return (gpointer) skel_CORBA_Container_describe_contents;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_Container(CORBA_Object obj, POA_CORBA_Container * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
}

void 
POA_CORBA_Container__init(POA_CORBA_Container * servant,
			  CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_Container, "IDL:omg.org/CORBA/Container:1.0", (gpointer) & init_local_objref_CORBA_Container};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IRObject__init(((POA_CORBA_IRObject *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_Container__classid)
      CORBA_Container__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_Container__fini(POA_CORBA_Container * servant,
			  CORBA_Environment * env)
{
   POA_CORBA_IRObject__fini(((POA_CORBA_IRObject *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_IDLType__get_type(POA_CORBA_IDLType * _ORBIT_servant,
			     GIOPRecvBuffer * _ORBIT_recv_buffer,
			     CORBA_Environment * ev,
	   CORBA_TypeCode(*_impl__get_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_IDLType(POA_CORBA_IDLType * servant,
		       GIOPRecvBuffer * _ORBIT_recv_buffer,
		       gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_IDLType(CORBA_Object obj, POA_CORBA_IDLType * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
}

void 
POA_CORBA_IDLType__init(POA_CORBA_IDLType * servant,
			CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_IDLType, "IDL:omg.org/CORBA/IDLType:1.0", (gpointer) & init_local_objref_CORBA_IDLType};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IRObject__init(((POA_CORBA_IRObject *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_IDLType__classid)
      CORBA_IDLType__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_IDLType__fini(POA_CORBA_IDLType * servant,
			CORBA_Environment * env)
{
   POA_CORBA_IRObject__fini(((POA_CORBA_IRObject *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_Repository_lookup_id(POA_CORBA_Repository * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
	  CORBA_Contained(*_impl_lookup_id) (PortableServer_Servant servant,
					 const CORBA_RepositoryId search_id,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId search_id;
   CORBA_Contained _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter search_id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 search_id = 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 search_id */
      {
	 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);
	 search_id = 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_lookup_id(_ORBIT_servant, search_id,
				   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);
   } 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 void
skel_CORBA_Repository_get_primitive(POA_CORBA_Repository * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
   CORBA_PrimitiveDef(*_impl_get_primitive) (PortableServer_Servant servant,
					     const CORBA_PrimitiveKind kind,
					     CORBA_Environment * ev))
{
   CORBA_PrimitiveKind kind;
   CORBA_PrimitiveDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter kind */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(kind);
   } else {

      /* demarshal parameter kind */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      kind = *((CORBA_PrimitiveKind *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_PrimitiveKind);
   }

   _ORBIT_retval = _impl_get_primitive(_ORBIT_servant, kind,
				       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);
   } 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 void
skel_CORBA_Repository_create_string(POA_CORBA_Repository * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
      CORBA_StringDef(*_impl_create_string) (PortableServer_Servant servant,
					     const CORBA_unsigned_long bound,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long bound;
   CORBA_StringDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(bound);
   } else {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      bound = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _ORBIT_retval = _impl_create_string(_ORBIT_servant, bound,
				       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);
   } 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 void
skel_CORBA_Repository_create_wstring(POA_CORBA_Repository * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
    CORBA_WstringDef(*_impl_create_wstring) (PortableServer_Servant servant,
					     const CORBA_unsigned_long bound,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long bound;
   CORBA_WstringDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(bound);
   } else {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      bound = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _ORBIT_retval = _impl_create_wstring(_ORBIT_servant, bound,
					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);
   } 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 void
skel_CORBA_Repository_create_sequence(POA_CORBA_Repository * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
  CORBA_SequenceDef(*_impl_create_sequence) (PortableServer_Servant servant,
					     const CORBA_unsigned_long bound,
					   const CORBA_IDLType element_type,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long bound;
   CORBA_IDLType element_type;
   CORBA_SequenceDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(bound);

      /* demarshal parameter element_type */
      element_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter bound */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      bound = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);

      /* demarshal parameter element_type */
      element_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _ORBIT_retval = _impl_create_sequence(_ORBIT_servant, bound,
					 element_type,
					 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);
   } 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);
   CORBA_Object_release(element_type, ev);
}

static void
skel_CORBA_Repository_create_array(POA_CORBA_Repository * _ORBIT_servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   CORBA_Environment * ev,
	CORBA_ArrayDef(*_impl_create_array) (PortableServer_Servant servant,
					   const CORBA_unsigned_long length,
					   const CORBA_IDLType element_type,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long length;
   CORBA_IDLType element_type;
   CORBA_ArrayDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter length */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(length);

      /* demarshal parameter element_type */
      element_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter length */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);

      /* demarshal parameter element_type */
      element_type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _ORBIT_retval = _impl_create_array(_ORBIT_servant, length,
				      element_type,
				      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);
   } 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);
   CORBA_Object_release(element_type, ev);
}

static void
skel_CORBA_Repository_create_fixed(POA_CORBA_Repository * _ORBIT_servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   CORBA_Environment * ev,
	CORBA_FixedDef(*_impl_create_fixed) (PortableServer_Servant servant,
					  const CORBA_unsigned_short digits,
					     const CORBA_short scale,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_short digits;
   CORBA_short scale;
   CORBA_FixedDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter digits */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      GET_ATOM(digits);

      /* demarshal parameter scale */
      GET_ATOM(scale);
   } else {

      /* demarshal parameter digits */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      digits = *((CORBA_unsigned_short *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_short);

      /* demarshal parameter scale */
      scale = *((CORBA_short *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_short);
   }

   _ORBIT_retval = _impl_create_fixed(_ORBIT_servant, digits,
				      scale,
				      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);
   } 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_CORBA_Repository(POA_CORBA_Repository * servant,
			  GIOPRecvBuffer * _ORBIT_recv_buffer,
			  gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
	return (gpointer) skel_CORBA_IRObject__get_def_kind;
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   switch (opname[8]) {
					     case 'l':
						*impl = servant->vepv->CORBA_Container_epv->create_alias;
						return (gpointer) skel_CORBA_Container_create_alias;
						break;
					     case 'r':
						*impl = servant->vepv->CORBA_Repository_epv->create_array;
						return (gpointer) skel_CORBA_Repository_create_array;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'f':
					   *impl = servant->vepv->CORBA_Repository_epv->create_fixed;
					   return (gpointer) skel_CORBA_Repository_create_fixed;
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   switch (opname[8]) {
					     case 'e':
						*impl = servant->vepv->CORBA_Repository_epv->create_sequence;
						return (gpointer) skel_CORBA_Repository_create_sequence;
						break;
					     case 't':
						switch (opname[9]) {
						  case 'r':
						     switch (opname[10]) {
						       case 'i':
							  *impl = servant->vepv->CORBA_Repository_epv->create_string;
							  return (gpointer) skel_CORBA_Repository_create_string;
							  break;
						       case 'u':
							  *impl = servant->vepv->CORBA_Container_epv->create_struct;
							  return (gpointer) skel_CORBA_Container_create_struct;
							  break;
						       default:
							  return NULL;
						     }
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					case 'w':
					   *impl = servant->vepv->CORBA_Repository_epv->create_wstring;
					   return (gpointer) skel_CORBA_Repository_create_wstring;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Container_epv->describe_contents;
		       return (gpointer) skel_CORBA_Container_describe_contents;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'g':
	*impl = servant->vepv->CORBA_Repository_epv->get_primitive;
	return (gpointer) skel_CORBA_Repository_get_primitive;
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      switch (opname[7]) {
					case 'i':
					   *impl = servant->vepv->CORBA_Repository_epv->lookup_id;
					   return (gpointer) skel_CORBA_Repository_lookup_id;
					   break;
					case 'n':
					   *impl = servant->vepv->CORBA_Container_epv->lookup_name;
					   return (gpointer) skel_CORBA_Container_lookup_name;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_Repository(CORBA_Object obj, POA_CORBA_Repository * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_Repository__classid] = servant->vepv->CORBA_Repository_epv;
}

void 
POA_CORBA_Repository__init(POA_CORBA_Repository * servant,
			   CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_Repository, "IDL:omg.org/CORBA/Repository:1.0", (gpointer) & init_local_objref_CORBA_Repository};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_Repository__classid)
      CORBA_Repository__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_Repository__fini(POA_CORBA_Repository * servant,
			   CORBA_Environment * env)
{
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static ORBitSkeleton 
get_skel_CORBA_ModuleDef(POA_CORBA_ModuleDef * servant,
			 GIOPRecvBuffer * _ORBIT_recv_buffer,
			 gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   *impl = servant->vepv->CORBA_Container_epv->create_alias;
					   return (gpointer) skel_CORBA_Container_create_alias;
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       switch (opname[4]) {
			 case 'r':
			    switch (opname[5]) {
			      case 'i':
				 switch (opname[6]) {
				   case 'b':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case '\0':
						*impl = servant->vepv->CORBA_Contained_epv->describe;
						return (gpointer) skel_CORBA_Contained_describe;
						break;
					     case '_':
						*impl = servant->vepv->CORBA_Container_epv->describe_contents;
						return (gpointer) skel_CORBA_Container_describe_contents;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_ModuleDef(CORBA_Object obj, POA_CORBA_ModuleDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_ModuleDef__classid] = servant->vepv->CORBA_ModuleDef_epv;
}

void 
POA_CORBA_ModuleDef__init(POA_CORBA_ModuleDef * servant,
			  CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_ModuleDef, "IDL:omg.org/CORBA/ModuleDef:1.0", (gpointer) & init_local_objref_CORBA_ModuleDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_ModuleDef__classid)
      CORBA_ModuleDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_ModuleDef__fini(POA_CORBA_ModuleDef * servant,
			  CORBA_Environment * env)
{
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_ConstantDef__get_type(POA_CORBA_ConstantDef * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
	   CORBA_TypeCode(*_impl__get_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_ConstantDef__get_type_def(POA_CORBA_ConstantDef * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
	CORBA_IDLType(*_impl__get_type_def) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_ConstantDef__set_type_def(POA_CORBA_ConstantDef * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
		void (*_impl__set_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_type_def(_ORBIT_servant, value,
		       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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static void
skel_CORBA_ConstantDef__get_value(POA_CORBA_ConstantDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
	    CORBA_any * (*_impl__get_value) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_any *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_value(_ORBIT_servant, 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_any(_ORBIT_send_buffer, &(*_ORBIT_retval));
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_ConstantDef__set_value(POA_CORBA_ConstantDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		   void (*_impl__set_value) (PortableServer_Servant servant,
					     const CORBA_any * value,
					     CORBA_Environment * ev))
{
   CORBA_any value =
   {NULL, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      ORBit_demarshal_any(_ORBIT_recv_buffer, &(value), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      ORBit_demarshal_any(_ORBIT_recv_buffer, &(value), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_value(_ORBIT_servant, &(value),
		    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) {
   } 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);
   CORBA_any__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_ConstantDef(POA_CORBA_ConstantDef * servant,
			   GIOPRecvBuffer * _ORBIT_recv_buffer,
			   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 switch (opname[6]) {
				   case 'y':
				      switch (opname[7]) {
					case 'p':
					   switch (opname[8]) {
					     case 'e':
						switch (opname[9]) {
						  case '\0':
						     *impl = servant->vepv->CORBA_ConstantDef_epv->_get_type;
						     return (gpointer) skel_CORBA_ConstantDef__get_type;
						     break;
						  case '_':
						     *impl = servant->vepv->CORBA_ConstantDef_epv->_get_type_def;
						     return (gpointer) skel_CORBA_ConstantDef__get_type_def;
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'v':
				 switch (opname[6]) {
				   case 'a':
				      *impl = servant->vepv->CORBA_ConstantDef_epv->_get_value;
				      return (gpointer) skel_CORBA_ConstantDef__get_value;
				      break;
				   case 'e':
				      *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				      return (gpointer) skel_CORBA_Contained__get_version;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_ConstantDef_epv->_set_type_def;
				 return (gpointer) skel_CORBA_ConstantDef__set_type_def;
				 break;
			      case 'v':
				 switch (opname[6]) {
				   case 'a':
				      *impl = servant->vepv->CORBA_ConstantDef_epv->_set_value;
				      return (gpointer) skel_CORBA_ConstantDef__set_value;
				      break;
				   case 'e':
				      *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				      return (gpointer) skel_CORBA_Contained__set_version;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_ConstantDef(CORBA_Object obj, POA_CORBA_ConstantDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_ConstantDef__classid] = servant->vepv->CORBA_ConstantDef_epv;
}

void 
POA_CORBA_ConstantDef__init(POA_CORBA_ConstantDef * servant,
			    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_ConstantDef, "IDL:omg.org/CORBA/ConstantDef:1.0", (gpointer) & init_local_objref_CORBA_ConstantDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_ConstantDef__classid)
      CORBA_ConstantDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_ConstantDef__fini(POA_CORBA_ConstantDef * servant,
			    CORBA_Environment * env)
{
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static ORBitSkeleton 
get_skel_CORBA_TypedefDef(POA_CORBA_TypedefDef * servant,
			  GIOPRecvBuffer * _ORBIT_recv_buffer,
			  gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_TypedefDef(CORBA_Object obj, POA_CORBA_TypedefDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_TypedefDef__classid] = servant->vepv->CORBA_TypedefDef_epv;
}

void 
POA_CORBA_TypedefDef__init(POA_CORBA_TypedefDef * servant,
			   CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_TypedefDef, "IDL:omg.org/CORBA/TypedefDef:1.0", (gpointer) & init_local_objref_CORBA_TypedefDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_TypedefDef__classid)
      CORBA_TypedefDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_TypedefDef__fini(POA_CORBA_TypedefDef * servant,
			   CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_StructDef__get_members(POA_CORBA_StructDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
				  CORBA_StructMemberSeq * (*_impl__get_members) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_StructMemberSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_members(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = ((*_ORBIT_retval)._buffer[i1]).name ? (strlen(((*_ORBIT_retval)._buffer[i1]).name) + 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 (((*_ORBIT_retval)._buffer[i1]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((*_ORBIT_retval)._buffer[i1]).name, len);
	    }
	    ORBit_encode_CORBA_TypeCode(((*_ORBIT_retval)._buffer[i1]).type, _ORBIT_send_buffer);
	    ORBit_marshal_object(_ORBIT_send_buffer, ((*_ORBIT_retval)._buffer[i1]).type_def);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_StructDef__set_members(POA_CORBA_StructDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		 void (*_impl__set_members) (PortableServer_Servant servant,
					const CORBA_StructMemberSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_StructMemberSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       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);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _impl__set_members(_ORBIT_servant, &(value),
		      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) {
   } 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);
   CORBA_StructMemberSeq__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_StructDef(POA_CORBA_StructDef * servant,
			 GIOPRecvBuffer * _ORBIT_recv_buffer,
			 gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_StructDef_epv->_get_members;
				 return (gpointer) skel_CORBA_StructDef__get_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_StructDef_epv->_set_members;
				 return (gpointer) skel_CORBA_StructDef__set_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   *impl = servant->vepv->CORBA_Container_epv->create_alias;
					   return (gpointer) skel_CORBA_Container_create_alias;
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       switch (opname[4]) {
			 case 'r':
			    switch (opname[5]) {
			      case 'i':
				 switch (opname[6]) {
				   case 'b':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case '\0':
						*impl = servant->vepv->CORBA_Contained_epv->describe;
						return (gpointer) skel_CORBA_Contained_describe;
						break;
					     case '_':
						*impl = servant->vepv->CORBA_Container_epv->describe_contents;
						return (gpointer) skel_CORBA_Container_describe_contents;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_StructDef(CORBA_Object obj, POA_CORBA_StructDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_TypedefDef__classid] = servant->vepv->CORBA_TypedefDef_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_StructDef__classid] = servant->vepv->CORBA_StructDef_epv;
}

void 
POA_CORBA_StructDef__init(POA_CORBA_StructDef * servant,
			  CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_StructDef, "IDL:omg.org/CORBA/StructDef:1.0", (gpointer) & init_local_objref_CORBA_StructDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_TypedefDef__init(((POA_CORBA_TypedefDef *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_StructDef__classid)
      CORBA_StructDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_StructDef__fini(POA_CORBA_StructDef * servant,
			  CORBA_Environment * env)
{
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   POA_CORBA_TypedefDef__fini(((POA_CORBA_TypedefDef *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_UnionDef__get_discriminator_type(POA_CORBA_UnionDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					    CORBA_Environment * ev,
					    CORBA_TypeCode(*_impl__get_discriminator_type) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_discriminator_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_UnionDef__get_discriminator_type_def(POA_CORBA_UnionDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						CORBA_Environment * ev,
						CORBA_IDLType(*_impl__get_discriminator_type_def) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_discriminator_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_UnionDef__set_discriminator_type_def(POA_CORBA_UnionDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						CORBA_Environment * ev,
  void (*_impl__set_discriminator_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_discriminator_type_def(_ORBIT_servant, value,
				     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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static void
skel_CORBA_UnionDef__get_members(POA_CORBA_UnionDef * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
CORBA_UnionMemberSeq * (*_impl__get_members) (PortableServer_Servant servant,
					      CORBA_Environment * ev))
{
   CORBA_UnionMemberSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_members(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = ((*_ORBIT_retval)._buffer[i1]).name ? (strlen(((*_ORBIT_retval)._buffer[i1]).name) + 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 (((*_ORBIT_retval)._buffer[i1]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((*_ORBIT_retval)._buffer[i1]).name, len);
	    }
	    ORBit_marshal_any(_ORBIT_send_buffer, &(((*_ORBIT_retval)._buffer[i1]).label));
	    ORBit_encode_CORBA_TypeCode(((*_ORBIT_retval)._buffer[i1]).type, _ORBIT_send_buffer);
	    ORBit_marshal_object(_ORBIT_send_buffer, ((*_ORBIT_retval)._buffer[i1]).type_def);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_UnionDef__set_members(POA_CORBA_UnionDef * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
		 void (*_impl__set_members) (PortableServer_Servant servant,
					 const CORBA_UnionMemberSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_UnionMemberSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_UnionMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((value)._buffer[i1]).name = 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_demarshal_any(_ORBIT_recv_buffer, &(((value)._buffer[i1]).label), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_UnionMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       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);
	       ((value)._buffer[i1]).name = 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_demarshal_any(_ORBIT_recv_buffer, &(((value)._buffer[i1]).label), CORBA_FALSE, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _impl__set_members(_ORBIT_servant, &(value),
		      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) {
   } 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);
   CORBA_UnionMemberSeq__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_UnionDef(POA_CORBA_UnionDef * servant,
			GIOPRecvBuffer * _ORBIT_recv_buffer,
			gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   case 'i':
				      switch (opname[7]) {
					case 's':
					   switch (opname[8]) {
					     case 'c':
						switch (opname[9]) {
						  case 'r':
						     switch (opname[10]) {
						       case 'i':
							  switch (opname[11]) {
							    case 'm':
							       switch (opname[12]) {
								 case 'i':
								    switch (opname[13]) {
								      case 'n':
									 switch (opname[14]) {
									   case 'a':
									      switch (opname[15]) {
										case 't':
										   switch (opname[16]) {
										     case 'o':
											switch (opname[17]) {
											  case 'r':
											     switch (opname[18]) {
											       case '_':
												  switch (opname[19]) {
												    case 't':
												       switch (opname[20]) {
													 case 'y':
													    switch (opname[21]) {
													      case 'p':
														 switch (opname[22]) {
														   case 'e':
														      switch (opname[23]) {
															case '\0':
															   *impl = servant->vepv->CORBA_UnionDef_epv->_get_discriminator_type;
															   return (gpointer) skel_CORBA_UnionDef__get_discriminator_type;
															   break;
															case '_':
															   *impl = servant->vepv->CORBA_UnionDef_epv->_get_discriminator_type_def;
															   return (gpointer) skel_CORBA_UnionDef__get_discriminator_type_def;
															   break;
															default:
															   return NULL;
														      }
														      break;
														   default:
														      return NULL;
														 }
														 break;
													      default:
														 return NULL;
													    }
													    break;
													 default:
													    return NULL;
												       }
												       break;
												    default:
												       return NULL;
												  }
												  break;
											       default:
												  return NULL;
											     }
											     break;
											  default:
											     return NULL;
											}
											break;
										     default:
											return NULL;
										   }
										   break;
										default:
										   return NULL;
									      }
									      break;
									   default:
									      return NULL;
									 }
									 break;
								      default:
									 return NULL;
								    }
								    break;
								 default:
								    return NULL;
							       }
							       break;
							    default:
							       return NULL;
							  }
							  break;
						       default:
							  return NULL;
						     }
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_UnionDef_epv->_get_members;
				 return (gpointer) skel_CORBA_UnionDef__get_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 *impl = servant->vepv->CORBA_UnionDef_epv->_set_discriminator_type_def;
				 return (gpointer) skel_CORBA_UnionDef__set_discriminator_type_def;
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_UnionDef_epv->_set_members;
				 return (gpointer) skel_CORBA_UnionDef__set_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   *impl = servant->vepv->CORBA_Container_epv->create_alias;
					   return (gpointer) skel_CORBA_Container_create_alias;
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       switch (opname[4]) {
			 case 'r':
			    switch (opname[5]) {
			      case 'i':
				 switch (opname[6]) {
				   case 'b':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case '\0':
						*impl = servant->vepv->CORBA_Contained_epv->describe;
						return (gpointer) skel_CORBA_Contained_describe;
						break;
					     case '_':
						*impl = servant->vepv->CORBA_Container_epv->describe_contents;
						return (gpointer) skel_CORBA_Container_describe_contents;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_UnionDef(CORBA_Object obj, POA_CORBA_UnionDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_TypedefDef__classid] = servant->vepv->CORBA_TypedefDef_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_UnionDef__classid] = servant->vepv->CORBA_UnionDef_epv;
}

void 
POA_CORBA_UnionDef__init(POA_CORBA_UnionDef * servant,
			 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_UnionDef, "IDL:omg.org/CORBA/UnionDef:1.0", (gpointer) & init_local_objref_CORBA_UnionDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_TypedefDef__init(((POA_CORBA_TypedefDef *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_UnionDef__classid)
      CORBA_UnionDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_UnionDef__fini(POA_CORBA_UnionDef * servant,
			 CORBA_Environment * env)
{
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   POA_CORBA_TypedefDef__fini(((POA_CORBA_TypedefDef *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_EnumDef__get_members(POA_CORBA_EnumDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
CORBA_EnumMemberSeq * (*_impl__get_members) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_EnumMemberSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_members(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = (*_ORBIT_retval)._buffer[i1] ? (strlen((*_ORBIT_retval)._buffer[i1]) + 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 ((*_ORBIT_retval)._buffer[i1])
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval)._buffer[i1], len);
	    }
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_EnumDef__set_members(POA_CORBA_EnumDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
		 void (*_impl__set_members) (PortableServer_Servant servant,
					  const CORBA_EnumMemberSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_EnumMemberSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_Identifier_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       (value)._buffer[i1] = 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 value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_Identifier_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       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);
	       (value)._buffer[i1] = 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;
	    }
	 }
      }
   }

   _impl__set_members(_ORBIT_servant, &(value),
		      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) {
   } 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);
   CORBA_EnumMemberSeq__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_EnumDef(POA_CORBA_EnumDef * servant,
		       GIOPRecvBuffer * _ORBIT_recv_buffer,
		       gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_EnumDef_epv->_get_members;
				 return (gpointer) skel_CORBA_EnumDef__get_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_EnumDef_epv->_set_members;
				 return (gpointer) skel_CORBA_EnumDef__set_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_EnumDef(CORBA_Object obj, POA_CORBA_EnumDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_TypedefDef__classid] = servant->vepv->CORBA_TypedefDef_epv;
   obj->vepv[CORBA_EnumDef__classid] = servant->vepv->CORBA_EnumDef_epv;
}

void 
POA_CORBA_EnumDef__init(POA_CORBA_EnumDef * servant,
			CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_EnumDef, "IDL:omg.org/CORBA/EnumDef:1.0", (gpointer) & init_local_objref_CORBA_EnumDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_TypedefDef__init(((POA_CORBA_TypedefDef *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_EnumDef__classid)
      CORBA_EnumDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_EnumDef__fini(POA_CORBA_EnumDef * servant,
			CORBA_Environment * env)
{
   POA_CORBA_TypedefDef__fini(((POA_CORBA_TypedefDef *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_AliasDef__get_original_type_def(POA_CORBA_AliasDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					   CORBA_Environment * ev,
CORBA_IDLType(*_impl__get_original_type_def) (PortableServer_Servant servant,
					      CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_original_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_AliasDef__set_original_type_def(POA_CORBA_AliasDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					   CORBA_Environment * ev,
       void (*_impl__set_original_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_original_type_def(_ORBIT_servant, value,
				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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static ORBitSkeleton 
get_skel_CORBA_AliasDef(POA_CORBA_AliasDef * servant,
			GIOPRecvBuffer * _ORBIT_recv_buffer,
			gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 'o':
				 *impl = servant->vepv->CORBA_AliasDef_epv->_get_original_type_def;
				 return (gpointer) skel_CORBA_AliasDef__get_original_type_def;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'o':
				 *impl = servant->vepv->CORBA_AliasDef_epv->_set_original_type_def;
				 return (gpointer) skel_CORBA_AliasDef__set_original_type_def;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_AliasDef(CORBA_Object obj, POA_CORBA_AliasDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_TypedefDef__classid] = servant->vepv->CORBA_TypedefDef_epv;
   obj->vepv[CORBA_AliasDef__classid] = servant->vepv->CORBA_AliasDef_epv;
}

void 
POA_CORBA_AliasDef__init(POA_CORBA_AliasDef * servant,
			 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_AliasDef, "IDL:omg.org/CORBA/AliasDef:1.0", (gpointer) & init_local_objref_CORBA_AliasDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_TypedefDef__init(((POA_CORBA_TypedefDef *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_AliasDef__classid)
      CORBA_AliasDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_AliasDef__fini(POA_CORBA_AliasDef * servant,
			 CORBA_Environment * env)
{
   POA_CORBA_TypedefDef__fini(((POA_CORBA_TypedefDef *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_PrimitiveDef__get_kind(POA_CORBA_PrimitiveDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
      CORBA_PrimitiveKind(*_impl__get_kind) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_PrimitiveKind _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_kind(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_PrimitiveDef(POA_CORBA_PrimitiveDef * servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 'k':
				 *impl = servant->vepv->CORBA_PrimitiveDef_epv->_get_kind;
				 return (gpointer) skel_CORBA_PrimitiveDef__get_kind;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_PrimitiveDef(CORBA_Object obj, POA_CORBA_PrimitiveDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_PrimitiveDef__classid] = servant->vepv->CORBA_PrimitiveDef_epv;
}

void 
POA_CORBA_PrimitiveDef__init(POA_CORBA_PrimitiveDef * servant,
			     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_PrimitiveDef, "IDL:omg.org/CORBA/PrimitiveDef:1.0", (gpointer) & init_local_objref_CORBA_PrimitiveDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_PrimitiveDef__classid)
      CORBA_PrimitiveDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_PrimitiveDef__fini(POA_CORBA_PrimitiveDef * servant,
			     CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_StringDef__get_bound(POA_CORBA_StringDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
     CORBA_unsigned_long(*_impl__get_bound) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_bound(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_StringDef__set_bound(POA_CORBA_StringDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
		   void (*_impl__set_bound) (PortableServer_Servant servant,
					     const CORBA_unsigned_long value,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _impl__set_bound(_ORBIT_servant, value,
		    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) {
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_StringDef(POA_CORBA_StringDef * servant,
			 GIOPRecvBuffer * _ORBIT_recv_buffer,
			 gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'b':
				 *impl = servant->vepv->CORBA_StringDef_epv->_get_bound;
				 return (gpointer) skel_CORBA_StringDef__get_bound;
				 break;
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     *impl = servant->vepv->CORBA_StringDef_epv->_set_bound;
	     return (gpointer) skel_CORBA_StringDef__set_bound;
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_StringDef(CORBA_Object obj, POA_CORBA_StringDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_StringDef__classid] = servant->vepv->CORBA_StringDef_epv;
}

void 
POA_CORBA_StringDef__init(POA_CORBA_StringDef * servant,
			  CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_StringDef, "IDL:omg.org/CORBA/StringDef:1.0", (gpointer) & init_local_objref_CORBA_StringDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_StringDef__classid)
      CORBA_StringDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_StringDef__fini(POA_CORBA_StringDef * servant,
			  CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_WstringDef__get_bound(POA_CORBA_WstringDef * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
     CORBA_unsigned_long(*_impl__get_bound) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_bound(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_WstringDef__set_bound(POA_CORBA_WstringDef * _ORBIT_servant,
				 GIOPRecvBuffer * _ORBIT_recv_buffer,
				 CORBA_Environment * ev,
		   void (*_impl__set_bound) (PortableServer_Servant servant,
					     const CORBA_unsigned_long value,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _impl__set_bound(_ORBIT_servant, value,
		    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) {
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_WstringDef(POA_CORBA_WstringDef * servant,
			  GIOPRecvBuffer * _ORBIT_recv_buffer,
			  gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'b':
				 *impl = servant->vepv->CORBA_WstringDef_epv->_get_bound;
				 return (gpointer) skel_CORBA_WstringDef__get_bound;
				 break;
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     *impl = servant->vepv->CORBA_WstringDef_epv->_set_bound;
	     return (gpointer) skel_CORBA_WstringDef__set_bound;
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_WstringDef(CORBA_Object obj, POA_CORBA_WstringDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_WstringDef__classid] = servant->vepv->CORBA_WstringDef_epv;
}

void 
POA_CORBA_WstringDef__init(POA_CORBA_WstringDef * servant,
			   CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_WstringDef, "IDL:omg.org/CORBA/WstringDef:1.0", (gpointer) & init_local_objref_CORBA_WstringDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_WstringDef__classid)
      CORBA_WstringDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_WstringDef__fini(POA_CORBA_WstringDef * servant,
			   CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_FixedDef__get_digits(POA_CORBA_FixedDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
   CORBA_unsigned_short(*_impl__get_digits) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_short _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_digits(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 2);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_FixedDef__set_digits(POA_CORBA_FixedDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
		  void (*_impl__set_digits) (PortableServer_Servant servant,
					   const CORBA_unsigned_short value,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_short value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      value = *((CORBA_unsigned_short *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_short);
   }

   _impl__set_digits(_ORBIT_servant, value,
		     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) {
   } 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);
}

static void
skel_CORBA_FixedDef__get_scale(POA_CORBA_FixedDef * _ORBIT_servant,
			       GIOPRecvBuffer * _ORBIT_recv_buffer,
			       CORBA_Environment * ev,
	     CORBA_short(*_impl__get_scale) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_short _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_scale(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 2);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_FixedDef__set_scale(POA_CORBA_FixedDef * _ORBIT_servant,
			       GIOPRecvBuffer * _ORBIT_recv_buffer,
			       CORBA_Environment * ev,
		   void (*_impl__set_scale) (PortableServer_Servant servant,
					     const CORBA_short value,
					     CORBA_Environment * ev))
{
   CORBA_short value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 2);
      value = *((CORBA_short *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_short);
   }

   _impl__set_scale(_ORBIT_servant, value,
		    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) {
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_FixedDef(POA_CORBA_FixedDef * servant,
			GIOPRecvBuffer * _ORBIT_recv_buffer,
			gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				      return (gpointer) skel_CORBA_IRObject__get_def_kind;
				      break;
				   case 'i':
				      *impl = servant->vepv->CORBA_FixedDef_epv->_get_digits;
				      return (gpointer) skel_CORBA_FixedDef__get_digits;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 's':
				 *impl = servant->vepv->CORBA_FixedDef_epv->_get_scale;
				 return (gpointer) skel_CORBA_FixedDef__get_scale;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 *impl = servant->vepv->CORBA_FixedDef_epv->_set_digits;
				 return (gpointer) skel_CORBA_FixedDef__set_digits;
				 break;
			      case 's':
				 *impl = servant->vepv->CORBA_FixedDef_epv->_set_scale;
				 return (gpointer) skel_CORBA_FixedDef__set_scale;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_FixedDef(CORBA_Object obj, POA_CORBA_FixedDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_FixedDef__classid] = servant->vepv->CORBA_FixedDef_epv;
}

void 
POA_CORBA_FixedDef__init(POA_CORBA_FixedDef * servant,
			 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_FixedDef, "IDL:omg.org/CORBA/FixedDef:1.0", (gpointer) & init_local_objref_CORBA_FixedDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_FixedDef__classid)
      CORBA_FixedDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_FixedDef__fini(POA_CORBA_FixedDef * servant,
			 CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_SequenceDef__get_bound(POA_CORBA_SequenceDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
     CORBA_unsigned_long(*_impl__get_bound) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_bound(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_SequenceDef__set_bound(POA_CORBA_SequenceDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		   void (*_impl__set_bound) (PortableServer_Servant servant,
					     const CORBA_unsigned_long value,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _impl__set_bound(_ORBIT_servant, value,
		    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) {
   } 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);
}

static void
skel_CORBA_SequenceDef__get_element_type(POA_CORBA_SequenceDef * _ORBIT_servant,
					 GIOPRecvBuffer * _ORBIT_recv_buffer,
					 CORBA_Environment * ev,
   CORBA_TypeCode(*_impl__get_element_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_element_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_SequenceDef__get_element_type_def(POA_CORBA_SequenceDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					     CORBA_Environment * ev,
CORBA_IDLType(*_impl__get_element_type_def) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_element_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_SequenceDef__set_element_type_def(POA_CORBA_SequenceDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					     CORBA_Environment * ev,
	void (*_impl__set_element_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_element_type_def(_ORBIT_servant, value,
			       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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static ORBitSkeleton 
get_skel_CORBA_SequenceDef(POA_CORBA_SequenceDef * servant,
			   GIOPRecvBuffer * _ORBIT_recv_buffer,
			   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'b':
				 *impl = servant->vepv->CORBA_SequenceDef_epv->_get_bound;
				 return (gpointer) skel_CORBA_SequenceDef__get_bound;
				 break;
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 'e':
				 switch (opname[6]) {
				   case 'l':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case 'm':
						switch (opname[9]) {
						  case 'e':
						     switch (opname[10]) {
						       case 'n':
							  switch (opname[11]) {
							    case 't':
							       switch (opname[12]) {
								 case '_':
								    switch (opname[13]) {
								      case 't':
									 switch (opname[14]) {
									   case 'y':
									      switch (opname[15]) {
										case 'p':
										   switch (opname[16]) {
										     case 'e':
											switch (opname[17]) {
											  case '\0':
											     *impl = servant->vepv->CORBA_SequenceDef_epv->_get_element_type;
											     return (gpointer) skel_CORBA_SequenceDef__get_element_type;
											     break;
											  case '_':
											     *impl = servant->vepv->CORBA_SequenceDef_epv->_get_element_type_def;
											     return (gpointer) skel_CORBA_SequenceDef__get_element_type_def;
											     break;
											  default:
											     return NULL;
											}
											break;
										     default:
											return NULL;
										   }
										   break;
										default:
										   return NULL;
									      }
									      break;
									   default:
									      return NULL;
									 }
									 break;
								      default:
									 return NULL;
								    }
								    break;
								 default:
								    return NULL;
							       }
							       break;
							    default:
							       return NULL;
							  }
							  break;
						       default:
							  return NULL;
						     }
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'b':
				 *impl = servant->vepv->CORBA_SequenceDef_epv->_set_bound;
				 return (gpointer) skel_CORBA_SequenceDef__set_bound;
				 break;
			      case 'e':
				 *impl = servant->vepv->CORBA_SequenceDef_epv->_set_element_type_def;
				 return (gpointer) skel_CORBA_SequenceDef__set_element_type_def;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_SequenceDef(CORBA_Object obj, POA_CORBA_SequenceDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_SequenceDef__classid] = servant->vepv->CORBA_SequenceDef_epv;
}

void 
POA_CORBA_SequenceDef__init(POA_CORBA_SequenceDef * servant,
			    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_SequenceDef, "IDL:omg.org/CORBA/SequenceDef:1.0", (gpointer) & init_local_objref_CORBA_SequenceDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_SequenceDef__classid)
      CORBA_SequenceDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_SequenceDef__fini(POA_CORBA_SequenceDef * servant,
			    CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_ArrayDef__get_length(POA_CORBA_ArrayDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
    CORBA_unsigned_long(*_impl__get_length) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_length(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_ArrayDef__set_length(POA_CORBA_ArrayDef * _ORBIT_servant,
				GIOPRecvBuffer * _ORBIT_recv_buffer,
				CORBA_Environment * ev,
		  void (*_impl__set_length) (PortableServer_Servant servant,
					     const CORBA_unsigned_long value,
					     CORBA_Environment * ev))
{
   CORBA_unsigned_long value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
   }

   _impl__set_length(_ORBIT_servant, value,
		     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) {
   } 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);
}

static void
skel_CORBA_ArrayDef__get_element_type(POA_CORBA_ArrayDef * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
   CORBA_TypeCode(*_impl__get_element_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_element_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_ArrayDef__get_element_type_def(POA_CORBA_ArrayDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					  CORBA_Environment * ev,
CORBA_IDLType(*_impl__get_element_type_def) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_element_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_ArrayDef__set_element_type_def(POA_CORBA_ArrayDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					  CORBA_Environment * ev,
	void (*_impl__set_element_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_element_type_def(_ORBIT_servant, value,
			       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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static ORBitSkeleton 
get_skel_CORBA_ArrayDef(POA_CORBA_ArrayDef * servant,
			GIOPRecvBuffer * _ORBIT_recv_buffer,
			gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'd':
				 *impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
				 return (gpointer) skel_CORBA_IRObject__get_def_kind;
				 break;
			      case 'e':
				 switch (opname[6]) {
				   case 'l':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case 'm':
						switch (opname[9]) {
						  case 'e':
						     switch (opname[10]) {
						       case 'n':
							  switch (opname[11]) {
							    case 't':
							       switch (opname[12]) {
								 case '_':
								    switch (opname[13]) {
								      case 't':
									 switch (opname[14]) {
									   case 'y':
									      switch (opname[15]) {
										case 'p':
										   switch (opname[16]) {
										     case 'e':
											switch (opname[17]) {
											  case '\0':
											     *impl = servant->vepv->CORBA_ArrayDef_epv->_get_element_type;
											     return (gpointer) skel_CORBA_ArrayDef__get_element_type;
											     break;
											  case '_':
											     *impl = servant->vepv->CORBA_ArrayDef_epv->_get_element_type_def;
											     return (gpointer) skel_CORBA_ArrayDef__get_element_type_def;
											     break;
											  default:
											     return NULL;
											}
											break;
										     default:
											return NULL;
										   }
										   break;
										default:
										   return NULL;
									      }
									      break;
									   default:
									      return NULL;
									 }
									 break;
								      default:
									 return NULL;
								    }
								    break;
								 default:
								    return NULL;
							       }
							       break;
							    default:
							       return NULL;
							  }
							  break;
						       default:
							  return NULL;
						     }
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'l':
				 *impl = servant->vepv->CORBA_ArrayDef_epv->_get_length;
				 return (gpointer) skel_CORBA_ArrayDef__get_length;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'e':
				 *impl = servant->vepv->CORBA_ArrayDef_epv->_set_element_type_def;
				 return (gpointer) skel_CORBA_ArrayDef__set_element_type_def;
				 break;
			      case 'l':
				 *impl = servant->vepv->CORBA_ArrayDef_epv->_set_length;
				 return (gpointer) skel_CORBA_ArrayDef__set_length;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	*impl = servant->vepv->CORBA_IRObject_epv->destroy;
	return (gpointer) skel_CORBA_IRObject_destroy;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_ArrayDef(CORBA_Object obj, POA_CORBA_ArrayDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_ArrayDef__classid] = servant->vepv->CORBA_ArrayDef_epv;
}

void 
POA_CORBA_ArrayDef__init(POA_CORBA_ArrayDef * servant,
			 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_ArrayDef, "IDL:omg.org/CORBA/ArrayDef:1.0", (gpointer) & init_local_objref_CORBA_ArrayDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_ArrayDef__classid)
      CORBA_ArrayDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_ArrayDef__fini(POA_CORBA_ArrayDef * servant,
			 CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_ExceptionDef__get_type(POA_CORBA_ExceptionDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
	   CORBA_TypeCode(*_impl__get_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_ExceptionDef__get_members(POA_CORBA_ExceptionDef * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
				     CORBA_StructMemberSeq * (*_impl__get_members) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_StructMemberSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_members(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = ((*_ORBIT_retval)._buffer[i1]).name ? (strlen(((*_ORBIT_retval)._buffer[i1]).name) + 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 (((*_ORBIT_retval)._buffer[i1]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((*_ORBIT_retval)._buffer[i1]).name, len);
	    }
	    ORBit_encode_CORBA_TypeCode(((*_ORBIT_retval)._buffer[i1]).type, _ORBIT_send_buffer);
	    ORBit_marshal_object(_ORBIT_send_buffer, ((*_ORBIT_retval)._buffer[i1]).type_def);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_ExceptionDef__set_members(POA_CORBA_ExceptionDef * _ORBIT_servant,
				     GIOPRecvBuffer * _ORBIT_recv_buffer,
				     CORBA_Environment * ev,
		 void (*_impl__set_members) (PortableServer_Servant servant,
					const CORBA_StructMemberSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_StructMemberSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_StructMember_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       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);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _impl__set_members(_ORBIT_servant, &(value),
		      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) {
   } 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);
   CORBA_StructMemberSeq__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_ExceptionDef(POA_CORBA_ExceptionDef * servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_ExceptionDef_epv->_get_members;
				 return (gpointer) skel_CORBA_ExceptionDef__get_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_ExceptionDef_epv->_get_type;
				 return (gpointer) skel_CORBA_ExceptionDef__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_ExceptionDef_epv->_set_members;
				 return (gpointer) skel_CORBA_ExceptionDef__set_members;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   *impl = servant->vepv->CORBA_Container_epv->create_alias;
					   return (gpointer) skel_CORBA_Container_create_alias;
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       switch (opname[4]) {
			 case 'r':
			    switch (opname[5]) {
			      case 'i':
				 switch (opname[6]) {
				   case 'b':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case '\0':
						*impl = servant->vepv->CORBA_Contained_epv->describe;
						return (gpointer) skel_CORBA_Contained_describe;
						break;
					     case '_':
						*impl = servant->vepv->CORBA_Container_epv->describe_contents;
						return (gpointer) skel_CORBA_Container_describe_contents;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_ExceptionDef(CORBA_Object obj, POA_CORBA_ExceptionDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_ExceptionDef__classid] = servant->vepv->CORBA_ExceptionDef_epv;
}

void 
POA_CORBA_ExceptionDef__init(POA_CORBA_ExceptionDef * servant,
			     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_ExceptionDef, "IDL:omg.org/CORBA/ExceptionDef:1.0", (gpointer) & init_local_objref_CORBA_ExceptionDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_ExceptionDef__classid)
      CORBA_ExceptionDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_ExceptionDef__fini(POA_CORBA_ExceptionDef * servant,
			     CORBA_Environment * env)
{
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_AttributeDef__get_type(POA_CORBA_AttributeDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
	   CORBA_TypeCode(*_impl__get_type) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_AttributeDef__get_type_def(POA_CORBA_AttributeDef * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
	CORBA_IDLType(*_impl__get_type_def) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_type_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_AttributeDef__set_type_def(POA_CORBA_AttributeDef * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
		void (*_impl__set_type_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_type_def(_ORBIT_servant, value,
		       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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static void
skel_CORBA_AttributeDef__get_mode(POA_CORBA_AttributeDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
      CORBA_AttributeMode(*_impl__get_mode) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_AttributeMode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_mode(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_AttributeDef__set_mode(POA_CORBA_AttributeDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		    void (*_impl__set_mode) (PortableServer_Servant servant,
					     const CORBA_AttributeMode value,
					     CORBA_Environment * ev))
{
   CORBA_AttributeMode value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_AttributeMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_AttributeMode);
   }

   _impl__set_mode(_ORBIT_servant, value,
		   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) {
   } 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);
}

static ORBitSkeleton 
get_skel_CORBA_AttributeDef(POA_CORBA_AttributeDef * servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_AttributeDef_epv->_get_mode;
				 return (gpointer) skel_CORBA_AttributeDef__get_mode;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 switch (opname[6]) {
				   case 'y':
				      switch (opname[7]) {
					case 'p':
					   switch (opname[8]) {
					     case 'e':
						switch (opname[9]) {
						  case '\0':
						     *impl = servant->vepv->CORBA_AttributeDef_epv->_get_type;
						     return (gpointer) skel_CORBA_AttributeDef__get_type;
						     break;
						  case '_':
						     *impl = servant->vepv->CORBA_AttributeDef_epv->_get_type_def;
						     return (gpointer) skel_CORBA_AttributeDef__get_type_def;
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_AttributeDef_epv->_set_mode;
				 return (gpointer) skel_CORBA_AttributeDef__set_mode;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_AttributeDef_epv->_set_type_def;
				 return (gpointer) skel_CORBA_AttributeDef__set_type_def;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_AttributeDef(CORBA_Object obj, POA_CORBA_AttributeDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_AttributeDef__classid] = servant->vepv->CORBA_AttributeDef_epv;
}

void 
POA_CORBA_AttributeDef__init(POA_CORBA_AttributeDef * servant,
			     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_AttributeDef, "IDL:omg.org/CORBA/AttributeDef:1.0", (gpointer) & init_local_objref_CORBA_AttributeDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_AttributeDef__classid)
      CORBA_AttributeDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_AttributeDef__fini(POA_CORBA_AttributeDef * servant,
			     CORBA_Environment * env)
{
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_OperationDef__get_result(POA_CORBA_OperationDef * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
	 CORBA_TypeCode(*_impl__get_result) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_TypeCode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_result(_ORBIT_servant, 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_encode_CORBA_TypeCode(_ORBIT_retval, _ORBIT_send_buffer);
   } 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);
}

static void
skel_CORBA_OperationDef__get_result_def(POA_CORBA_OperationDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
      CORBA_IDLType(*_impl__get_result_def) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_IDLType _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_result_def(_ORBIT_servant, 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);
   } 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 void
skel_CORBA_OperationDef__set_result_def(POA_CORBA_OperationDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
	      void (*_impl__set_result_def) (PortableServer_Servant servant,
					     const CORBA_IDLType value,
					     CORBA_Environment * ev))
{
   CORBA_IDLType value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   } else {

      /* demarshal parameter value */
      value = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
   }

   _impl__set_result_def(_ORBIT_servant, value,
			 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) {
   } 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);
   CORBA_Object_release(value, ev);
}

static void
skel_CORBA_OperationDef__get_params(POA_CORBA_OperationDef * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
				    CORBA_ParDescriptionSeq * (*_impl__get_params) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_ParDescriptionSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_params(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = ((*_ORBIT_retval)._buffer[i1]).name ? (strlen(((*_ORBIT_retval)._buffer[i1]).name) + 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 (((*_ORBIT_retval)._buffer[i1]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((*_ORBIT_retval)._buffer[i1]).name, len);
	    }
	    ORBit_encode_CORBA_TypeCode(((*_ORBIT_retval)._buffer[i1]).type, _ORBIT_send_buffer);
	    ORBit_marshal_object(_ORBIT_send_buffer, ((*_ORBIT_retval)._buffer[i1]).type_def);
	    giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((*_ORBIT_retval)._buffer[i1]).mode, sizeof(((*_ORBIT_retval)._buffer[i1]).mode));
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_OperationDef__set_params(POA_CORBA_OperationDef * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
		  void (*_impl__set_params) (PortableServer_Servant servant,
				      const CORBA_ParDescriptionSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_ParDescriptionSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ParameterDescription_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GET_ATOM(len);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    GET_ATOM(((value)._buffer[i1]).mode);
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ParameterDescription_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       len = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
	       ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
	       ((value)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((value)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((value)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ((value)._buffer[i1]).mode = *((CORBA_ParameterMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
	    ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_ParameterMode);
	 }
      }
   }

   _impl__set_params(_ORBIT_servant, &(value),
		     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) {
   } 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);
   CORBA_ParDescriptionSeq__free(&value, NULL, CORBA_FALSE);
}

static void
skel_CORBA_OperationDef__get_mode(POA_CORBA_OperationDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
      CORBA_OperationMode(*_impl__get_mode) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_OperationMode _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_mode(_ORBIT_servant, 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 */
      giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_OperationDef__set_mode(POA_CORBA_OperationDef * _ORBIT_servant,
				  GIOPRecvBuffer * _ORBIT_recv_buffer,
				  CORBA_Environment * ev,
		    void (*_impl__set_mode) (PortableServer_Servant servant,
					     const CORBA_OperationMode value,
					     CORBA_Environment * ev))
{
   CORBA_OperationMode value;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(value);
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      value = *((CORBA_OperationMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_OperationMode);
   }

   _impl__set_mode(_ORBIT_servant, value,
		   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) {
   } 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);
}

static void
skel_CORBA_OperationDef__get_contexts(POA_CORBA_OperationDef * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
CORBA_ContextIdSeq * (*_impl__get_contexts) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_ContextIdSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_contexts(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    {
	       GIOP_unsigned_long len = (*_ORBIT_retval)._buffer[i1] ? (strlen((*_ORBIT_retval)._buffer[i1]) + 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 ((*_ORBIT_retval)._buffer[i1])
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval)._buffer[i1], len);
	    }
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_OperationDef__set_contexts(POA_CORBA_OperationDef * _ORBIT_servant,
				      GIOPRecvBuffer * _ORBIT_recv_buffer,
				      CORBA_Environment * ev,
		void (*_impl__set_contexts) (PortableServer_Servant servant,
					   const CORBA_ContextIdSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_ContextIdSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ContextIdentifier_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       (value)._buffer[i1] = 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 value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ContextIdentifier_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    {
	       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);
	       (value)._buffer[i1] = 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;
	    }
	 }
      }
   }

   _impl__set_contexts(_ORBIT_servant, &(value),
		       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) {
   } 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);
   CORBA_ContextIdSeq__free(&value, NULL, CORBA_FALSE);
}

static void
skel_CORBA_OperationDef__get_exceptions(POA_CORBA_OperationDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
					CORBA_ExceptionDefSeq * (*_impl__get_exceptions) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_ExceptionDefSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_exceptions(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    ORBit_marshal_object(_ORBIT_send_buffer, (*_ORBIT_retval)._buffer[i1]);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_OperationDef__set_exceptions(POA_CORBA_OperationDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
	      void (*_impl__set_exceptions) (PortableServer_Servant servant,
					const CORBA_ExceptionDefSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_ExceptionDefSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ExceptionDef_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    (value)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_ExceptionDef_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    (value)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _impl__set_exceptions(_ORBIT_servant, &(value),
			 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) {
   } 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);
   CORBA_ExceptionDefSeq__free(&value, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_OperationDef(POA_CORBA_OperationDef * servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'c':
				 switch (opname[6]) {
				   case 'o':
				      switch (opname[7]) {
					case 'n':
					   switch (opname[8]) {
					     case 't':
						switch (opname[9]) {
						  case 'a':
						     *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
						     return (gpointer) skel_CORBA_Contained__get_containing_repository;
						     break;
						  case 'e':
						     *impl = servant->vepv->CORBA_OperationDef_epv->_get_contexts;
						     return (gpointer) skel_CORBA_OperationDef__get_contexts;
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'e':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_get_exceptions;
				 return (gpointer) skel_CORBA_OperationDef__get_exceptions;
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_get_mode;
				 return (gpointer) skel_CORBA_OperationDef__get_mode;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 'p':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_get_params;
				 return (gpointer) skel_CORBA_OperationDef__get_params;
				 break;
			      case 'r':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 's':
					   switch (opname[8]) {
					     case 'u':
						switch (opname[9]) {
						  case 'l':
						     switch (opname[10]) {
						       case 't':
							  switch (opname[11]) {
							    case '\0':
							       *impl = servant->vepv->CORBA_OperationDef_epv->_get_result;
							       return (gpointer) skel_CORBA_OperationDef__get_result;
							       break;
							    case '_':
							       *impl = servant->vepv->CORBA_OperationDef_epv->_get_result_def;
							       return (gpointer) skel_CORBA_OperationDef__get_result_def;
							       break;
							    default:
							       return NULL;
							  }
							  break;
						       default:
							  return NULL;
						     }
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'c':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_set_contexts;
				 return (gpointer) skel_CORBA_OperationDef__set_contexts;
				 break;
			      case 'e':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_set_exceptions;
				 return (gpointer) skel_CORBA_OperationDef__set_exceptions;
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'm':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_set_mode;
				 return (gpointer) skel_CORBA_OperationDef__set_mode;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'p':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_set_params;
				 return (gpointer) skel_CORBA_OperationDef__set_params;
				 break;
			      case 'r':
				 *impl = servant->vepv->CORBA_OperationDef_epv->_set_result_def;
				 return (gpointer) skel_CORBA_OperationDef__set_result_def;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       *impl = servant->vepv->CORBA_Contained_epv->describe;
		       return (gpointer) skel_CORBA_Contained_describe;
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_OperationDef(CORBA_Object obj, POA_CORBA_OperationDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_OperationDef__classid] = servant->vepv->CORBA_OperationDef_epv;
}

void 
POA_CORBA_OperationDef__init(POA_CORBA_OperationDef * servant,
			     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_OperationDef, "IDL:omg.org/CORBA/OperationDef:1.0", (gpointer) & init_local_objref_CORBA_OperationDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_OperationDef__classid)
      CORBA_OperationDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_OperationDef__fini(POA_CORBA_OperationDef * servant,
			     CORBA_Environment * env)
{
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CORBA_InterfaceDef__get_base_interfaces(POA_CORBA_InterfaceDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					     CORBA_Environment * ev,
					     CORBA_InterfaceDefSeq * (*_impl__get_base_interfaces) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_InterfaceDefSeq *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl__get_base_interfaces(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long i1;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(*_ORBIT_retval)._length, sizeof((*_ORBIT_retval)._length));
	 for (i1 = 0; i1 < (*_ORBIT_retval)._length; i1++) {
	    ORBit_marshal_object(_ORBIT_send_buffer, (*_ORBIT_retval)._buffer[i1]);
	 }
      }
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_InterfaceDef__set_base_interfaces(POA_CORBA_InterfaceDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					     CORBA_Environment * ev,
	 void (*_impl__set_base_interfaces) (PortableServer_Servant servant,
					const CORBA_InterfaceDefSeq * value,
					     CORBA_Environment * ev))
{
   CORBA_InterfaceDefSeq value =
   {0, 0, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((value)._length);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_InterfaceDef_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    (value)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   } else {

      /* demarshal parameter value */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (value)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (value)._release = CORBA_TRUE;
      (value)._buffer = CORBA_sequence_CORBA_InterfaceDef_allocbuf((value)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (value)._length; i1++) {
	    (value)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }
   }

   _impl__set_base_interfaces(_ORBIT_servant, &(value),
			      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) {
   } 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);
   CORBA_InterfaceDefSeq__free(&value, NULL, CORBA_FALSE);
}

static void
skel_CORBA_InterfaceDef_is_a(POA_CORBA_InterfaceDef * _ORBIT_servant,
			     GIOPRecvBuffer * _ORBIT_recv_buffer,
			     CORBA_Environment * ev,
		 CORBA_boolean(*_impl_is_a) (PortableServer_Servant servant,
				      const CORBA_RepositoryId interface_id,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId interface_id;
   CORBA_boolean _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter interface_id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 interface_id = 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 interface_id */
      {
	 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);
	 interface_id = 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_is_a(_ORBIT_servant, interface_id,
			      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 */
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &_ORBIT_retval, sizeof(_ORBIT_retval));
   } 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);
}

static void
skel_CORBA_InterfaceDef_describe_interface(POA_CORBA_InterfaceDef * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					   CORBA_Environment * ev,
					   CORBA_InterfaceDef_FullInterfaceDescription * (*_impl_describe_interface) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CORBA_InterfaceDef_FullInterfaceDescription *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_describe_interface(_ORBIT_servant, 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 */
      {
	 GIOP_unsigned_long len = (*_ORBIT_retval).name ? (strlen((*_ORBIT_retval).name) + 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 ((*_ORBIT_retval).name)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval).name, len);
      }
      {
	 GIOP_unsigned_long len = (*_ORBIT_retval).id ? (strlen((*_ORBIT_retval).id) + 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 ((*_ORBIT_retval).id)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval).id, len);
      }
      {
	 GIOP_unsigned_long len = (*_ORBIT_retval).defined_in ? (strlen((*_ORBIT_retval).defined_in) + 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 ((*_ORBIT_retval).defined_in)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval).defined_in, len);
      }
      {
	 GIOP_unsigned_long len = (*_ORBIT_retval).version ? (strlen((*_ORBIT_retval).version) + 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 ((*_ORBIT_retval).version)
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (*_ORBIT_retval).version, len);
      }
      {
	 GIOP_unsigned_long i2;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((*_ORBIT_retval).operations)._length, sizeof(((*_ORBIT_retval).operations)._length));
	 for (i2 = 0; i2 < ((*_ORBIT_retval).operations)._length; i2++) {
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).operations)._buffer[i2]).name ? (strlen((((*_ORBIT_retval).operations)._buffer[i2]).name) + 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 ((((*_ORBIT_retval).operations)._buffer[i2]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).operations)._buffer[i2]).name, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).operations)._buffer[i2]).id ? (strlen((((*_ORBIT_retval).operations)._buffer[i2]).id) + 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 ((((*_ORBIT_retval).operations)._buffer[i2]).id)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).operations)._buffer[i2]).id, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).operations)._buffer[i2]).defined_in ? (strlen((((*_ORBIT_retval).operations)._buffer[i2]).defined_in) + 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 ((((*_ORBIT_retval).operations)._buffer[i2]).defined_in)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).operations)._buffer[i2]).defined_in, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).operations)._buffer[i2]).version ? (strlen((((*_ORBIT_retval).operations)._buffer[i2]).version) + 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 ((((*_ORBIT_retval).operations)._buffer[i2]).version)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).operations)._buffer[i2]).version, len);
	    }
	    ORBit_encode_CORBA_TypeCode((((*_ORBIT_retval).operations)._buffer[i2]).result, _ORBIT_send_buffer);
	    giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(((*_ORBIT_retval).operations)._buffer[i2]).mode, sizeof((((*_ORBIT_retval).operations)._buffer[i2]).mode));
	    {
	       GIOP_unsigned_long i4;

	       giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._length, sizeof(((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._length));
	       for (i4 = 0; i4 < ((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._length; i4++) {
		  {
		     GIOP_unsigned_long len = ((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._buffer[i4] ? (strlen(((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._buffer[i4]) + 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 (((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._buffer[i4])
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((((*_ORBIT_retval).operations)._buffer[i2]).contexts)._buffer[i4], len);
		  }
	       }
	    }
	    {
	       GIOP_unsigned_long i4;

	       giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	       giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._length, sizeof(((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._length));
	       for (i4 = 0; i4 < ((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._length; i4++) {
		  {
		     GIOP_unsigned_long len = (((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).name ? (strlen((((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).name) + 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 ((((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).name)
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).name, len);
		  }
		  ORBit_encode_CORBA_TypeCode((((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).type, _ORBIT_send_buffer);
		  ORBit_marshal_object(_ORBIT_send_buffer, (((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).type_def);
		  giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).mode, sizeof((((((*_ORBIT_retval).operations)._buffer[i2]).parameters)._buffer[i4]).mode));
	       }
	    }
	    {
	       GIOP_unsigned_long i4;

	       giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._length, sizeof(((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._length));
	       for (i4 = 0; i4 < ((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._length; i4++) {
		  {
		     GIOP_unsigned_long len = (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).name ? (strlen((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).name) + 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 ((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).name)
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).name, len);
		  }
		  {
		     GIOP_unsigned_long len = (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).id ? (strlen((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).id) + 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 ((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).id)
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).id, len);
		  }
		  {
		     GIOP_unsigned_long len = (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).defined_in ? (strlen((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).defined_in) + 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 ((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).defined_in)
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).defined_in, len);
		  }
		  {
		     GIOP_unsigned_long len = (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).version ? (strlen((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).version) + 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 ((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).version)
			giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).version, len);
		  }
		  ORBit_encode_CORBA_TypeCode((((((*_ORBIT_retval).operations)._buffer[i2]).exceptions)._buffer[i4]).type, _ORBIT_send_buffer);
	       }
	    }
	 }
      }
      {
	 GIOP_unsigned_long i2;

	 giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((*_ORBIT_retval).attributes)._length, sizeof(((*_ORBIT_retval).attributes)._length));
	 for (i2 = 0; i2 < ((*_ORBIT_retval).attributes)._length; i2++) {
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).attributes)._buffer[i2]).name ? (strlen((((*_ORBIT_retval).attributes)._buffer[i2]).name) + 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 ((((*_ORBIT_retval).attributes)._buffer[i2]).name)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).attributes)._buffer[i2]).name, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).attributes)._buffer[i2]).id ? (strlen((((*_ORBIT_retval).attributes)._buffer[i2]).id) + 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 ((((*_ORBIT_retval).attributes)._buffer[i2]).id)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).attributes)._buffer[i2]).id, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).attributes)._buffer[i2]).defined_in ? (strlen((((*_ORBIT_retval).attributes)._buffer[i2]).defined_in) + 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 ((((*_ORBIT_retval).attributes)._buffer[i2]).defined_in)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).attributes)._buffer[i2]).defined_in, len);
	    }
	    {
	       GIOP_unsigned_long len = (((*_ORBIT_retval).attributes)._buffer[i2]).version ? (strlen((((*_ORBIT_retval).attributes)._buffer[i2]).version) + 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 ((((*_ORBIT_retval).attributes)._buffer[i2]).version)
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), (((*_ORBIT_retval).attributes)._buffer[i2]).version, len);
	    }
	    ORBit_encode_CORBA_TypeCode((((*_ORBIT_retval).attributes)._buffer[i2]).type, _ORBIT_send_buffer);
	    giop_message_buffer_do_alignment(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), 4);
	    giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &(((*_ORBIT_retval).attributes)._buffer[i2]).mode, sizeof((((*_ORBIT_retval).attributes)._buffer[i2]).mode));
	 }
      }
      {
	 GIOP_unsigned_long i2;

	 giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &((*_ORBIT_retval).base_interfaces)._length, sizeof(((*_ORBIT_retval).base_interfaces)._length));
	 for (i2 = 0; i2 < ((*_ORBIT_retval).base_interfaces)._length; i2++) {
	    {
	       GIOP_unsigned_long len = ((*_ORBIT_retval).base_interfaces)._buffer[i2] ? (strlen(((*_ORBIT_retval).base_interfaces)._buffer[i2]) + 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 (((*_ORBIT_retval).base_interfaces)._buffer[i2])
		  giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), ((*_ORBIT_retval).base_interfaces)._buffer[i2], len);
	    }
	 }
      }
      ORBit_encode_CORBA_TypeCode((*_ORBIT_retval).type, _ORBIT_send_buffer);
   } 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_free(_ORBIT_retval);
}

static void
skel_CORBA_InterfaceDef_create_attribute(POA_CORBA_InterfaceDef * _ORBIT_servant,
					 GIOPRecvBuffer * _ORBIT_recv_buffer,
					 CORBA_Environment * ev,
CORBA_AttributeDef(*_impl_create_attribute) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					     const CORBA_IDLType type,
					     const CORBA_AttributeMode mode,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_IDLType type;
   CORBA_AttributeMode mode;
   CORBA_AttributeDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter type */
      type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter mode */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(mode);
   } else {

      /* demarshal parameter id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter type */
      type = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter mode */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      mode = *((CORBA_AttributeMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_AttributeMode);
   }

   _ORBIT_retval = _impl_create_attribute(_ORBIT_servant, id,
					  name,
					  version,
					  type,
					  mode,
					  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);
   } 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);
   CORBA_Object_release(type, ev);
}

static void
skel_CORBA_InterfaceDef_create_operation(POA_CORBA_InterfaceDef * _ORBIT_servant,
					 GIOPRecvBuffer * _ORBIT_recv_buffer,
					 CORBA_Environment * ev,
CORBA_OperationDef(*_impl_create_operation) (PortableServer_Servant servant,
					     const CORBA_RepositoryId id,
					     const CORBA_Identifier name,
					     const CORBA_VersionSpec version,
					     const CORBA_IDLType result,
					     const CORBA_OperationMode mode,
				     const CORBA_ParDescriptionSeq * params,
				   const CORBA_ExceptionDefSeq * exceptions,
					const CORBA_ContextIdSeq * contexts,
					     CORBA_Environment * ev))
{
   CORBA_RepositoryId id;
   CORBA_Identifier name;
   CORBA_VersionSpec version;
   CORBA_IDLType result;
   CORBA_OperationMode mode;
   CORBA_ParDescriptionSeq params =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_ExceptionDefSeq exceptions =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_ContextIdSeq contexts =
   {0, 0, NULL, CORBA_FALSE};
   CORBA_OperationDef _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

      /* demarshal parameter id */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 GIOP_unsigned_long len;

	 GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	 GET_ATOM(len);
	 version = 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;
      }

      /* demarshal parameter result */
      result = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter mode */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM(mode);

      /* demarshal parameter params */
      GET_ATOM((params)._length);
      (params)._release = CORBA_TRUE;
      (params)._buffer = CORBA_sequence_CORBA_ParameterDescription_allocbuf((params)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (params)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GET_ATOM(len);
	       ((params)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((params)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((params)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    GET_ATOM(((params)._buffer[i1]).mode);
	 }
      }

      /* demarshal parameter exceptions */
      GET_ATOM((exceptions)._length);
      (exceptions)._release = CORBA_TRUE;
      (exceptions)._buffer = CORBA_sequence_CORBA_ExceptionDef_allocbuf((exceptions)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (exceptions)._length; i1++) {
	    (exceptions)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }

      /* demarshal parameter contexts */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      GET_ATOM((contexts)._length);
      (contexts)._release = CORBA_TRUE;
      (contexts)._buffer = CORBA_sequence_CORBA_ContextIdentifier_allocbuf((contexts)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (contexts)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	       GET_ATOM(len);
	       (contexts)._buffer[i1] = 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 id */
      {
	 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);
	 id = 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;
      }

      /* demarshal parameter name */
      {
	 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);
	 name = 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;
      }

      /* demarshal parameter version */
      {
	 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);
	 version = 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;
      }

      /* demarshal parameter result */
      result = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));

      /* demarshal parameter mode */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      mode = *((CORBA_OperationMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_OperationMode);

      /* demarshal parameter params */
      (params)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (params)._release = CORBA_TRUE;
      (params)._buffer = CORBA_sequence_CORBA_ParameterDescription_allocbuf((params)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (params)._length; i1++) {
	    {
	       GIOP_unsigned_long len;

	       len = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
	       ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
	       ((params)._buffer[i1]).name = 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;
	    }
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ORBit_decode_CORBA_TypeCode(&((params)._buffer[i1]).type, _ORBIT_recv_buffer);
	    ((params)._buffer[i1]).type_def = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	    GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
	    ((params)._buffer[i1]).mode = *((CORBA_ParameterMode *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
	    ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_ParameterMode);
	 }
      }

      /* demarshal parameter exceptions */
      (exceptions)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (exceptions)._release = CORBA_TRUE;
      (exceptions)._buffer = CORBA_sequence_CORBA_ExceptionDef_allocbuf((exceptions)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (exceptions)._length; i1++) {
	    (exceptions)._buffer[i1] = ORBit_demarshal_object(_ORBIT_recv_buffer, (((ORBit_ObjectKey *) _ORBIT_servant->_private)->object->orb));
	 }
      }

      /* demarshal parameter contexts */
      GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur = ALIGN_ADDRESS(GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur, 4);
      (contexts)._length = *((CORBA_unsigned_long *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur);
      ((char *) GIOP_RECV_BUFFER(_ORBIT_recv_buffer)->cur) += sizeof(CORBA_unsigned_long);
      (contexts)._release = CORBA_TRUE;
      (contexts)._buffer = CORBA_sequence_CORBA_ContextIdentifier_allocbuf((contexts)._length);
      {
	 int i1;

	 for (i1 = 0; i1 < (contexts)._length; i1++) {
	    {
	       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);
	       (contexts)._buffer[i1] = 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_create_operation(_ORBIT_servant, id,
					  name,
					  version,
					  result,
					  mode,
					  &(params),
					  &(exceptions),
					  &(contexts),
					  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);
   } 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);
   CORBA_Object_release(result, ev);
   CORBA_ParDescriptionSeq__free(&params, NULL, CORBA_FALSE);
   CORBA_ExceptionDefSeq__free(&exceptions, NULL, CORBA_FALSE);
   CORBA_ContextIdSeq__free(&contexts, NULL, CORBA_FALSE);
}

static ORBitSkeleton 
get_skel_CORBA_InterfaceDef(POA_CORBA_InterfaceDef * servant,
			    GIOPRecvBuffer * _ORBIT_recv_buffer,
			    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case '_':
	switch (opname[1]) {
	  case 'g':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'a':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_absolute_name;
				 return (gpointer) skel_CORBA_Contained__get_absolute_name;
				 break;
			      case 'b':
				 *impl = servant->vepv->CORBA_InterfaceDef_epv->_get_base_interfaces;
				 return (gpointer) skel_CORBA_InterfaceDef__get_base_interfaces;
				 break;
			      case 'c':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_containing_repository;
				 return (gpointer) skel_CORBA_Contained__get_containing_repository;
				 break;
			      case 'd':
				 switch (opname[6]) {
				   case 'e':
				      switch (opname[7]) {
					case 'f':
					   switch (opname[8]) {
					     case '_':
						*impl = servant->vepv->CORBA_IRObject_epv->_get_def_kind;
						return (gpointer) skel_CORBA_IRObject__get_def_kind;
						break;
					     case 'i':
						*impl = servant->vepv->CORBA_Contained_epv->_get_defined_in;
						return (gpointer) skel_CORBA_Contained__get_defined_in;
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_id;
				 return (gpointer) skel_CORBA_Contained__get_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_name;
				 return (gpointer) skel_CORBA_Contained__get_name;
				 break;
			      case 't':
				 *impl = servant->vepv->CORBA_IDLType_epv->_get_type;
				 return (gpointer) skel_CORBA_IDLType__get_type;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_get_version;
				 return (gpointer) skel_CORBA_Contained__get_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  case 's':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 't':
		       switch (opname[4]) {
			 case '_':
			    switch (opname[5]) {
			      case 'b':
				 *impl = servant->vepv->CORBA_InterfaceDef_epv->_set_base_interfaces;
				 return (gpointer) skel_CORBA_InterfaceDef__set_base_interfaces;
				 break;
			      case 'i':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_id;
				 return (gpointer) skel_CORBA_Contained__set_id;
				 break;
			      case 'n':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_name;
				 return (gpointer) skel_CORBA_Contained__set_name;
				 break;
			      case 'v':
				 *impl = servant->vepv->CORBA_Contained_epv->_set_version;
				 return (gpointer) skel_CORBA_Contained__set_version;
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'c':
	switch (opname[1]) {
	  case 'o':
	     *impl = servant->vepv->CORBA_Container_epv->contents;
	     return (gpointer) skel_CORBA_Container_contents;
	     break;
	  case 'r':
	     switch (opname[2]) {
	       case 'e':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 't':
			    switch (opname[5]) {
			      case 'e':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'a':
					   switch (opname[8]) {
					     case 'l':
						*impl = servant->vepv->CORBA_Container_epv->create_alias;
						return (gpointer) skel_CORBA_Container_create_alias;
						break;
					     case 't':
						*impl = servant->vepv->CORBA_InterfaceDef_epv->create_attribute;
						return (gpointer) skel_CORBA_InterfaceDef_create_attribute;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'c':
					   *impl = servant->vepv->CORBA_Container_epv->create_constant;
					   return (gpointer) skel_CORBA_Container_create_constant;
					   break;
					case 'e':
					   switch (opname[8]) {
					     case 'n':
						*impl = servant->vepv->CORBA_Container_epv->create_enum;
						return (gpointer) skel_CORBA_Container_create_enum;
						break;
					     case 'x':
						*impl = servant->vepv->CORBA_Container_epv->create_exception;
						return (gpointer) skel_CORBA_Container_create_exception;
						break;
					     default:
						return NULL;
					   }
					   break;
					case 'i':
					   *impl = servant->vepv->CORBA_Container_epv->create_interface;
					   return (gpointer) skel_CORBA_Container_create_interface;
					   break;
					case 'm':
					   *impl = servant->vepv->CORBA_Container_epv->create_module;
					   return (gpointer) skel_CORBA_Container_create_module;
					   break;
					case 'o':
					   *impl = servant->vepv->CORBA_InterfaceDef_epv->create_operation;
					   return (gpointer) skel_CORBA_InterfaceDef_create_operation;
					   break;
					case 's':
					   *impl = servant->vepv->CORBA_Container_epv->create_struct;
					   return (gpointer) skel_CORBA_Container_create_struct;
					   break;
					case 'u':
					   *impl = servant->vepv->CORBA_Container_epv->create_union;
					   return (gpointer) skel_CORBA_Container_create_union;
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'd':
	switch (opname[1]) {
	  case 'e':
	     switch (opname[2]) {
	       case 's':
		  switch (opname[3]) {
		    case 'c':
		       switch (opname[4]) {
			 case 'r':
			    switch (opname[5]) {
			      case 'i':
				 switch (opname[6]) {
				   case 'b':
				      switch (opname[7]) {
					case 'e':
					   switch (opname[8]) {
					     case '\0':
						*impl = servant->vepv->CORBA_Contained_epv->describe;
						return (gpointer) skel_CORBA_Contained_describe;
						break;
					     case '_':
						switch (opname[9]) {
						  case 'c':
						     *impl = servant->vepv->CORBA_Container_epv->describe_contents;
						     return (gpointer) skel_CORBA_Container_describe_contents;
						     break;
						  case 'i':
						     *impl = servant->vepv->CORBA_InterfaceDef_epv->describe_interface;
						     return (gpointer) skel_CORBA_InterfaceDef_describe_interface;
						     break;
						  default:
						     return NULL;
						}
						break;
					     default:
						return NULL;
					   }
					   break;
					default:
					   return NULL;
				      }
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    case 't':
		       *impl = servant->vepv->CORBA_IRObject_epv->destroy;
		       return (gpointer) skel_CORBA_IRObject_destroy;
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'i':
	*impl = servant->vepv->CORBA_InterfaceDef_epv->is_a;
	return (gpointer) skel_CORBA_InterfaceDef_is_a;
	break;
     case 'l':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'o':
		  switch (opname[3]) {
		    case 'k':
		       switch (opname[4]) {
			 case 'u':
			    switch (opname[5]) {
			      case 'p':
				 switch (opname[6]) {
				   case '\0':
				      *impl = servant->vepv->CORBA_Container_epv->lookup;
				      return (gpointer) skel_CORBA_Container_lookup;
				      break;
				   case '_':
				      *impl = servant->vepv->CORBA_Container_epv->lookup_name;
				      return (gpointer) skel_CORBA_Container_lookup_name;
				      break;
				   default:
				      return NULL;
				 }
				 break;
			      default:
				 return NULL;
			    }
			    break;
			 default:
			    return NULL;
		       }
		       break;
		    default:
		       return NULL;
		  }
		  break;
	       default:
		  return NULL;
	     }
	     break;
	  default:
	     return NULL;
	}
	break;
     case 'm':
	*impl = servant->vepv->CORBA_Contained_epv->move;
	return (gpointer) skel_CORBA_Contained_move;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CORBA_InterfaceDef(CORBA_Object obj, POA_CORBA_InterfaceDef * servant)
{
   obj->vepv[CORBA_IRObject__classid] = servant->vepv->CORBA_IRObject_epv;
   obj->vepv[CORBA_Container__classid] = servant->vepv->CORBA_Container_epv;
   obj->vepv[CORBA_Contained__classid] = servant->vepv->CORBA_Contained_epv;
   obj->vepv[CORBA_IDLType__classid] = servant->vepv->CORBA_IDLType_epv;
   obj->vepv[CORBA_InterfaceDef__classid] = servant->vepv->CORBA_InterfaceDef_epv;
}

void 
POA_CORBA_InterfaceDef__init(POA_CORBA_InterfaceDef * servant,
			     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CORBA_InterfaceDef, "IDL:omg.org/CORBA/InterfaceDef:1.0", (gpointer) & init_local_objref_CORBA_InterfaceDef};

   PortableServer_ServantBase__init(((PortableServer_ServantBase *) servant), env);
   POA_CORBA_Container__init(((POA_CORBA_Container *) servant), env);
   POA_CORBA_Contained__init(((POA_CORBA_Contained *) servant), env);
   POA_CORBA_IDLType__init(((POA_CORBA_IDLType *) servant), env);
   ORBIT_OBJECT_KEY(servant->_private)->class_info = (PortableServer_ClassInfo *) & class_info;
   if (!CORBA_InterfaceDef__classid)
      CORBA_InterfaceDef__classid = ORBit_register_class(&class_info);
}

void 
POA_CORBA_InterfaceDef__fini(POA_CORBA_InterfaceDef * servant,
			     CORBA_Environment * env)
{
   POA_CORBA_IDLType__fini(((POA_CORBA_IDLType *) servant), env);
   POA_CORBA_Contained__fini(((POA_CORBA_Contained *) servant), env);
   POA_CORBA_Container__fini(((POA_CORBA_Container *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

/***************** End module CORBA ***************/
