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

#include <string.h>
#include "CosEventChannel.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 CosEventComm ***************/
static void 
CosEventComm_Disconnected_marshal(GIOPSendBuffer * _ORBIT_send_buffer, CORBA_Environment * ev)
{
}

static void
skel_CosEventComm_PushConsumer_push(POA_CosEventComm_PushConsumer * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
			 void (*_impl_push) (PortableServer_Servant servant,
					     const CORBA_any * data,
					     CORBA_Environment * ev))
{
   CORBA_any data =
   {NULL, NULL, CORBA_FALSE};
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventComm_Disconnected_struct, (gpointer) CosEventComm_Disconnected_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

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

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

   _impl_push(_ORBIT_servant, &(data),
	      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, _ORBIT_user_exceptions);
   giop_send_buffer_write(_ORBIT_send_buffer);
   giop_send_buffer_unuse(_ORBIT_send_buffer);
   CORBA_any__free(&data, NULL, CORBA_FALSE);
}

static void
skel_CosEventComm_PushConsumer_disconnect_push_consumer(POA_CosEventComm_PushConsumer * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
     void (*_impl_disconnect_push_consumer) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   GIOPSendBuffer *_ORBIT_send_buffer;

   _impl_disconnect_push_consumer(_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_CosEventComm_PushConsumer(POA_CosEventComm_PushConsumer * servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'd':
	*impl = servant->vepv->CosEventComm_PushConsumer_epv->disconnect_push_consumer;
	return (gpointer) skel_CosEventComm_PushConsumer_disconnect_push_consumer;
	break;
     case 'p':
	*impl = servant->vepv->CosEventComm_PushConsumer_epv->push;
	return (gpointer) skel_CosEventComm_PushConsumer_push;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventComm_PushConsumer(CORBA_Object obj, POA_CosEventComm_PushConsumer * servant)
{
   obj->vepv[CosEventComm_PushConsumer__classid] = servant->vepv->CosEventComm_PushConsumer_epv;
}

void 
POA_CosEventComm_PushConsumer__init(POA_CosEventComm_PushConsumer * servant,
				    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventComm_PushConsumer, "IDL:omg.org/CosEventComm/PushConsumer:1.0", (gpointer) & init_local_objref_CosEventComm_PushConsumer};

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

void 
POA_CosEventComm_PushConsumer__fini(POA_CosEventComm_PushConsumer * servant,
				    CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventComm_PushSupplier_disconnect_push_supplier(POA_CosEventComm_PushSupplier * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
     void (*_impl_disconnect_push_supplier) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   GIOPSendBuffer *_ORBIT_send_buffer;

   _impl_disconnect_push_supplier(_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_CosEventComm_PushSupplier(POA_CosEventComm_PushSupplier * servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'd':
	*impl = servant->vepv->CosEventComm_PushSupplier_epv->disconnect_push_supplier;
	return (gpointer) skel_CosEventComm_PushSupplier_disconnect_push_supplier;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventComm_PushSupplier(CORBA_Object obj, POA_CosEventComm_PushSupplier * servant)
{
   obj->vepv[CosEventComm_PushSupplier__classid] = servant->vepv->CosEventComm_PushSupplier_epv;
}

void 
POA_CosEventComm_PushSupplier__init(POA_CosEventComm_PushSupplier * servant,
				    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventComm_PushSupplier, "IDL:omg.org/CosEventComm/PushSupplier:1.0", (gpointer) & init_local_objref_CosEventComm_PushSupplier};

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

void 
POA_CosEventComm_PushSupplier__fini(POA_CosEventComm_PushSupplier * servant,
				    CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventComm_PullSupplier_pull(POA_CosEventComm_PullSupplier * _ORBIT_servant,
				    GIOPRecvBuffer * _ORBIT_recv_buffer,
				    CORBA_Environment * ev,
		  CORBA_any * (*_impl_pull) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   CORBA_any *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventComm_Disconnected_struct, (gpointer) CosEventComm_Disconnected_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   _ORBIT_retval = _impl_pull(_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, _ORBIT_user_exceptions);
   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_CosEventComm_PullSupplier_try_pull(POA_CosEventComm_PullSupplier * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					CORBA_Environment * ev,
	      CORBA_any * (*_impl_try_pull) (PortableServer_Servant servant,
					     CORBA_boolean * has_event,
					     CORBA_Environment * ev))
{
   CORBA_boolean has_event;
   CORBA_any *_ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventComm_Disconnected_struct, (gpointer) CosEventComm_Disconnected_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   _ORBIT_retval = _impl_try_pull(_ORBIT_servant, &(has_event),
				  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));
      /* marshal parameter has_event */
      giop_message_buffer_append_mem(GIOP_MESSAGE_BUFFER(_ORBIT_send_buffer), &has_event, sizeof(has_event));
   } 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, _ORBIT_user_exceptions);
   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_CosEventComm_PullSupplier_disconnect_pull_supplier(POA_CosEventComm_PullSupplier * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
     void (*_impl_disconnect_pull_supplier) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   GIOPSendBuffer *_ORBIT_send_buffer;

   _impl_disconnect_pull_supplier(_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_CosEventComm_PullSupplier(POA_CosEventComm_PullSupplier * servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'd':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->disconnect_pull_supplier;
	return (gpointer) skel_CosEventComm_PullSupplier_disconnect_pull_supplier;
	break;
     case 'p':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->pull;
	return (gpointer) skel_CosEventComm_PullSupplier_pull;
	break;
     case 't':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->try_pull;
	return (gpointer) skel_CosEventComm_PullSupplier_try_pull;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventComm_PullSupplier(CORBA_Object obj, POA_CosEventComm_PullSupplier * servant)
{
   obj->vepv[CosEventComm_PullSupplier__classid] = servant->vepv->CosEventComm_PullSupplier_epv;
}

void 
POA_CosEventComm_PullSupplier__init(POA_CosEventComm_PullSupplier * servant,
				    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventComm_PullSupplier, "IDL:omg.org/CosEventComm/PullSupplier:1.0", (gpointer) & init_local_objref_CosEventComm_PullSupplier};

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

void 
POA_CosEventComm_PullSupplier__fini(POA_CosEventComm_PullSupplier * servant,
				    CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventComm_PullConsumer_disconnect_pull_consumer(POA_CosEventComm_PullConsumer * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
     void (*_impl_disconnect_pull_consumer) (PortableServer_Servant servant,
					     CORBA_Environment * ev))
{
   GIOPSendBuffer *_ORBIT_send_buffer;

   _impl_disconnect_pull_consumer(_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_CosEventComm_PullConsumer(POA_CosEventComm_PullConsumer * servant,
				   GIOPRecvBuffer * _ORBIT_recv_buffer,
				   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'd':
	*impl = servant->vepv->CosEventComm_PullConsumer_epv->disconnect_pull_consumer;
	return (gpointer) skel_CosEventComm_PullConsumer_disconnect_pull_consumer;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventComm_PullConsumer(CORBA_Object obj, POA_CosEventComm_PullConsumer * servant)
{
   obj->vepv[CosEventComm_PullConsumer__classid] = servant->vepv->CosEventComm_PullConsumer_epv;
}

void 
POA_CosEventComm_PullConsumer__init(POA_CosEventComm_PullConsumer * servant,
				    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventComm_PullConsumer, "IDL:omg.org/CosEventComm/PullConsumer:1.0", (gpointer) & init_local_objref_CosEventComm_PullConsumer};

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

void 
POA_CosEventComm_PullConsumer__fini(POA_CosEventComm_PullConsumer * servant,
				    CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

/***************** End module CosEventComm ***************/
/***************** Begin module CosEventChannelAdmin ***************/
static void 
CosEventChannelAdmin_AlreadyConnected_marshal(GIOPSendBuffer * _ORBIT_send_buffer, CORBA_Environment * ev)
{
}
static void 
CosEventChannelAdmin_TypeError_marshal(GIOPSendBuffer * _ORBIT_send_buffer, CORBA_Environment * ev)
{
}

static void
skel_CosEventChannelAdmin_ProxyPushConsumer_connect_push_supplier(POA_CosEventChannelAdmin_ProxyPushConsumer * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
	void (*_impl_connect_push_supplier) (PortableServer_Servant servant,
			      const CosEventComm_PushSupplier push_supplier,
					     CORBA_Environment * ev))
{
   CosEventComm_PushSupplier push_supplier;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_AlreadyConnected_struct, (gpointer) CosEventChannelAdmin_AlreadyConnected_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

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

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

   _impl_connect_push_supplier(_ORBIT_servant, push_supplier,
			       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, _ORBIT_user_exceptions);
   giop_send_buffer_write(_ORBIT_send_buffer);
   giop_send_buffer_unuse(_ORBIT_send_buffer);
   CORBA_Object_release(push_supplier, ev);
}

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

   switch (opname[0]) {
     case 'c':
	*impl = servant->vepv->CosEventChannelAdmin_ProxyPushConsumer_epv->connect_push_supplier;
	return (gpointer) skel_CosEventChannelAdmin_ProxyPushConsumer_connect_push_supplier;
	break;
     case 'd':
	*impl = servant->vepv->CosEventComm_PushConsumer_epv->disconnect_push_consumer;
	return (gpointer) skel_CosEventComm_PushConsumer_disconnect_push_consumer;
	break;
     case 'p':
	*impl = servant->vepv->CosEventComm_PushConsumer_epv->push;
	return (gpointer) skel_CosEventComm_PushConsumer_push;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_ProxyPushConsumer(CORBA_Object obj, POA_CosEventChannelAdmin_ProxyPushConsumer * servant)
{
   obj->vepv[CosEventComm_PushConsumer__classid] = servant->vepv->CosEventComm_PushConsumer_epv;
   obj->vepv[CosEventChannelAdmin_ProxyPushConsumer__classid] = servant->vepv->CosEventChannelAdmin_ProxyPushConsumer_epv;
}

void 
POA_CosEventChannelAdmin_ProxyPushConsumer__init(POA_CosEventChannelAdmin_ProxyPushConsumer * servant,
						 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_ProxyPushConsumer, "IDL:omg.org/CosEventChannelAdmin/ProxyPushConsumer:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_ProxyPushConsumer};

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

void 
POA_CosEventChannelAdmin_ProxyPushConsumer__fini(POA_CosEventChannelAdmin_ProxyPushConsumer * servant,
						 CORBA_Environment * env)
{
   POA_CosEventComm_PushConsumer__fini(((POA_CosEventComm_PushConsumer *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_ProxyPullSupplier_connect_pull_consumer(POA_CosEventChannelAdmin_ProxyPullSupplier * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
	void (*_impl_connect_pull_consumer) (PortableServer_Servant servant,
			      const CosEventComm_PullConsumer pull_consumer,
					     CORBA_Environment * ev))
{
   CosEventComm_PullConsumer pull_consumer;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_AlreadyConnected_struct, (gpointer) CosEventChannelAdmin_AlreadyConnected_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

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

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

   _impl_connect_pull_consumer(_ORBIT_servant, pull_consumer,
			       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, _ORBIT_user_exceptions);
   giop_send_buffer_write(_ORBIT_send_buffer);
   giop_send_buffer_unuse(_ORBIT_send_buffer);
   CORBA_Object_release(pull_consumer, ev);
}

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

   switch (opname[0]) {
     case 'c':
	*impl = servant->vepv->CosEventChannelAdmin_ProxyPullSupplier_epv->connect_pull_consumer;
	return (gpointer) skel_CosEventChannelAdmin_ProxyPullSupplier_connect_pull_consumer;
	break;
     case 'd':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->disconnect_pull_supplier;
	return (gpointer) skel_CosEventComm_PullSupplier_disconnect_pull_supplier;
	break;
     case 'p':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->pull;
	return (gpointer) skel_CosEventComm_PullSupplier_pull;
	break;
     case 't':
	*impl = servant->vepv->CosEventComm_PullSupplier_epv->try_pull;
	return (gpointer) skel_CosEventComm_PullSupplier_try_pull;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_ProxyPullSupplier(CORBA_Object obj, POA_CosEventChannelAdmin_ProxyPullSupplier * servant)
{
   obj->vepv[CosEventComm_PullSupplier__classid] = servant->vepv->CosEventComm_PullSupplier_epv;
   obj->vepv[CosEventChannelAdmin_ProxyPullSupplier__classid] = servant->vepv->CosEventChannelAdmin_ProxyPullSupplier_epv;
}

void 
POA_CosEventChannelAdmin_ProxyPullSupplier__init(POA_CosEventChannelAdmin_ProxyPullSupplier * servant,
						 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_ProxyPullSupplier, "IDL:omg.org/CosEventChannelAdmin/ProxyPullSupplier:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_ProxyPullSupplier};

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

void 
POA_CosEventChannelAdmin_ProxyPullSupplier__fini(POA_CosEventChannelAdmin_ProxyPullSupplier * servant,
						 CORBA_Environment * env)
{
   POA_CosEventComm_PullSupplier__fini(((POA_CosEventComm_PullSupplier *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_ProxyPullConsumer_connect_pull_supplier(POA_CosEventChannelAdmin_ProxyPullConsumer * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
	void (*_impl_connect_pull_supplier) (PortableServer_Servant servant,
			      const CosEventComm_PullSupplier pull_supplier,
					     CORBA_Environment * ev))
{
   CosEventComm_PullSupplier pull_supplier;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_AlreadyConnected_struct, (gpointer) CosEventChannelAdmin_AlreadyConnected_marshal},
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_TypeError_struct, (gpointer) CosEventChannelAdmin_TypeError_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

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

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

   _impl_connect_pull_supplier(_ORBIT_servant, pull_supplier,
			       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, _ORBIT_user_exceptions);
   giop_send_buffer_write(_ORBIT_send_buffer);
   giop_send_buffer_unuse(_ORBIT_send_buffer);
   CORBA_Object_release(pull_supplier, ev);
}

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

   switch (opname[0]) {
     case 'c':
	*impl = servant->vepv->CosEventChannelAdmin_ProxyPullConsumer_epv->connect_pull_supplier;
	return (gpointer) skel_CosEventChannelAdmin_ProxyPullConsumer_connect_pull_supplier;
	break;
     case 'd':
	*impl = servant->vepv->CosEventComm_PullConsumer_epv->disconnect_pull_consumer;
	return (gpointer) skel_CosEventComm_PullConsumer_disconnect_pull_consumer;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_ProxyPullConsumer(CORBA_Object obj, POA_CosEventChannelAdmin_ProxyPullConsumer * servant)
{
   obj->vepv[CosEventComm_PullConsumer__classid] = servant->vepv->CosEventComm_PullConsumer_epv;
   obj->vepv[CosEventChannelAdmin_ProxyPullConsumer__classid] = servant->vepv->CosEventChannelAdmin_ProxyPullConsumer_epv;
}

void 
POA_CosEventChannelAdmin_ProxyPullConsumer__init(POA_CosEventChannelAdmin_ProxyPullConsumer * servant,
						 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_ProxyPullConsumer, "IDL:omg.org/CosEventChannelAdmin/ProxyPullConsumer:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_ProxyPullConsumer};

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

void 
POA_CosEventChannelAdmin_ProxyPullConsumer__fini(POA_CosEventChannelAdmin_ProxyPullConsumer * servant,
						 CORBA_Environment * env)
{
   POA_CosEventComm_PullConsumer__fini(((POA_CosEventComm_PullConsumer *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_ProxyPushSupplier_connect_push_consumer(POA_CosEventChannelAdmin_ProxyPushSupplier * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
	void (*_impl_connect_push_consumer) (PortableServer_Servant servant,
			      const CosEventComm_PushConsumer push_consumer,
					     CORBA_Environment * ev))
{
   CosEventComm_PushConsumer push_consumer;
   GIOPSendBuffer *_ORBIT_send_buffer;
   static const ORBit_exception_marshal_info _ORBIT_user_exceptions[] =
   {
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_AlreadyConnected_struct, (gpointer) CosEventChannelAdmin_AlreadyConnected_marshal},
      {(CORBA_TypeCode) & TC_CosEventChannelAdmin_TypeError_struct, (gpointer) CosEventChannelAdmin_TypeError_marshal},
      {CORBA_OBJECT_NIL, NULL}};

   if (giop_msg_conversion_needed(GIOP_MESSAGE_BUFFER(_ORBIT_recv_buffer))) {

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

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

   _impl_connect_push_consumer(_ORBIT_servant, push_consumer,
			       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, _ORBIT_user_exceptions);
   giop_send_buffer_write(_ORBIT_send_buffer);
   giop_send_buffer_unuse(_ORBIT_send_buffer);
   CORBA_Object_release(push_consumer, ev);
}

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

   switch (opname[0]) {
     case 'c':
	*impl = servant->vepv->CosEventChannelAdmin_ProxyPushSupplier_epv->connect_push_consumer;
	return (gpointer) skel_CosEventChannelAdmin_ProxyPushSupplier_connect_push_consumer;
	break;
     case 'd':
	*impl = servant->vepv->CosEventComm_PushSupplier_epv->disconnect_push_supplier;
	return (gpointer) skel_CosEventComm_PushSupplier_disconnect_push_supplier;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_ProxyPushSupplier(CORBA_Object obj, POA_CosEventChannelAdmin_ProxyPushSupplier * servant)
{
   obj->vepv[CosEventComm_PushSupplier__classid] = servant->vepv->CosEventComm_PushSupplier_epv;
   obj->vepv[CosEventChannelAdmin_ProxyPushSupplier__classid] = servant->vepv->CosEventChannelAdmin_ProxyPushSupplier_epv;
}

void 
POA_CosEventChannelAdmin_ProxyPushSupplier__init(POA_CosEventChannelAdmin_ProxyPushSupplier * servant,
						 CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_ProxyPushSupplier, "IDL:omg.org/CosEventChannelAdmin/ProxyPushSupplier:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_ProxyPushSupplier};

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

void 
POA_CosEventChannelAdmin_ProxyPushSupplier__fini(POA_CosEventChannelAdmin_ProxyPushSupplier * servant,
						 CORBA_Environment * env)
{
   POA_CosEventComm_PushSupplier__fini(((POA_CosEventComm_PushSupplier *) servant), env);
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_ConsumerAdmin_obtain_push_supplier(POA_CosEventChannelAdmin_ConsumerAdmin * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
							     CosEventChannelAdmin_ProxyPushSupplier(*_impl_obtain_push_supplier) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_ProxyPushSupplier _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_obtain_push_supplier(_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_CosEventChannelAdmin_ConsumerAdmin_obtain_pull_supplier(POA_CosEventChannelAdmin_ConsumerAdmin * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
							     CosEventChannelAdmin_ProxyPullSupplier(*_impl_obtain_pull_supplier) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_ProxyPullSupplier _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_obtain_pull_supplier(_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 ORBitSkeleton 
get_skel_CosEventChannelAdmin_ConsumerAdmin(POA_CosEventChannelAdmin_ConsumerAdmin * servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'o':
	switch (opname[1]) {
	  case 'b':
	     switch (opname[2]) {
	       case 't':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 'i':
			    switch (opname[5]) {
			      case 'n':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'p':
					   switch (opname[8]) {
					     case 'u':
						switch (opname[9]) {
						  case 'l':
						     *impl = servant->vepv->CosEventChannelAdmin_ConsumerAdmin_epv->obtain_pull_supplier;
						     return (gpointer) skel_CosEventChannelAdmin_ConsumerAdmin_obtain_pull_supplier;
						     break;
						  case 's':
						     *impl = servant->vepv->CosEventChannelAdmin_ConsumerAdmin_epv->obtain_push_supplier;
						     return (gpointer) skel_CosEventChannelAdmin_ConsumerAdmin_obtain_push_supplier;
						     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;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_ConsumerAdmin(CORBA_Object obj, POA_CosEventChannelAdmin_ConsumerAdmin * servant)
{
   obj->vepv[CosEventChannelAdmin_ConsumerAdmin__classid] = servant->vepv->CosEventChannelAdmin_ConsumerAdmin_epv;
}

void 
POA_CosEventChannelAdmin_ConsumerAdmin__init(POA_CosEventChannelAdmin_ConsumerAdmin * servant,
					     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_ConsumerAdmin, "IDL:omg.org/CosEventChannelAdmin/ConsumerAdmin:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_ConsumerAdmin};

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

void 
POA_CosEventChannelAdmin_ConsumerAdmin__fini(POA_CosEventChannelAdmin_ConsumerAdmin * servant,
					     CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_SupplierAdmin_obtain_push_consumer(POA_CosEventChannelAdmin_SupplierAdmin * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
							     CosEventChannelAdmin_ProxyPushConsumer(*_impl_obtain_push_consumer) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_ProxyPushConsumer _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_obtain_push_consumer(_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_CosEventChannelAdmin_SupplierAdmin_obtain_pull_consumer(POA_CosEventChannelAdmin_SupplierAdmin * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
							     CosEventChannelAdmin_ProxyPullConsumer(*_impl_obtain_pull_consumer) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_ProxyPullConsumer _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_obtain_pull_consumer(_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 ORBitSkeleton 
get_skel_CosEventChannelAdmin_SupplierAdmin(POA_CosEventChannelAdmin_SupplierAdmin * servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					    gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'o':
	switch (opname[1]) {
	  case 'b':
	     switch (opname[2]) {
	       case 't':
		  switch (opname[3]) {
		    case 'a':
		       switch (opname[4]) {
			 case 'i':
			    switch (opname[5]) {
			      case 'n':
				 switch (opname[6]) {
				   case '_':
				      switch (opname[7]) {
					case 'p':
					   switch (opname[8]) {
					     case 'u':
						switch (opname[9]) {
						  case 'l':
						     *impl = servant->vepv->CosEventChannelAdmin_SupplierAdmin_epv->obtain_pull_consumer;
						     return (gpointer) skel_CosEventChannelAdmin_SupplierAdmin_obtain_pull_consumer;
						     break;
						  case 's':
						     *impl = servant->vepv->CosEventChannelAdmin_SupplierAdmin_epv->obtain_push_consumer;
						     return (gpointer) skel_CosEventChannelAdmin_SupplierAdmin_obtain_push_consumer;
						     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;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_SupplierAdmin(CORBA_Object obj, POA_CosEventChannelAdmin_SupplierAdmin * servant)
{
   obj->vepv[CosEventChannelAdmin_SupplierAdmin__classid] = servant->vepv->CosEventChannelAdmin_SupplierAdmin_epv;
}

void 
POA_CosEventChannelAdmin_SupplierAdmin__init(POA_CosEventChannelAdmin_SupplierAdmin * servant,
					     CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_SupplierAdmin, "IDL:omg.org/CosEventChannelAdmin/SupplierAdmin:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_SupplierAdmin};

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

void 
POA_CosEventChannelAdmin_SupplierAdmin__fini(POA_CosEventChannelAdmin_SupplierAdmin * servant,
					     CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_EventChannel_for_consumers(POA_CosEventChannelAdmin_EventChannel * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
						     CosEventChannelAdmin_ConsumerAdmin(*_impl_for_consumers) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_ConsumerAdmin _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_for_consumers(_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_CosEventChannelAdmin_EventChannel_for_suppliers(POA_CosEventChannelAdmin_EventChannel * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
						     CosEventChannelAdmin_SupplierAdmin(*_impl_for_suppliers) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_SupplierAdmin _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_for_suppliers(_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_CosEventChannelAdmin_EventChannel_destroy(POA_CosEventChannelAdmin_EventChannel * _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_CosEventChannelAdmin_EventChannel(POA_CosEventChannelAdmin_EventChannel * servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
					   gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'd':
	*impl = servant->vepv->CosEventChannelAdmin_EventChannel_epv->destroy;
	return (gpointer) skel_CosEventChannelAdmin_EventChannel_destroy;
	break;
     case 'f':
	switch (opname[1]) {
	  case 'o':
	     switch (opname[2]) {
	       case 'r':
		  switch (opname[3]) {
		    case '_':
		       switch (opname[4]) {
			 case 'c':
			    *impl = servant->vepv->CosEventChannelAdmin_EventChannel_epv->for_consumers;
			    return (gpointer) skel_CosEventChannelAdmin_EventChannel_for_consumers;
			    break;
			 case 's':
			    *impl = servant->vepv->CosEventChannelAdmin_EventChannel_epv->for_suppliers;
			    return (gpointer) skel_CosEventChannelAdmin_EventChannel_for_suppliers;
			    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_CosEventChannelAdmin_EventChannel(CORBA_Object obj, POA_CosEventChannelAdmin_EventChannel * servant)
{
   obj->vepv[CosEventChannelAdmin_EventChannel__classid] = servant->vepv->CosEventChannelAdmin_EventChannel_epv;
}

void 
POA_CosEventChannelAdmin_EventChannel__init(POA_CosEventChannelAdmin_EventChannel * servant,
					    CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_EventChannel, "IDL:omg.org/CosEventChannelAdmin/EventChannel:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_EventChannel};

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

void 
POA_CosEventChannelAdmin_EventChannel__fini(POA_CosEventChannelAdmin_EventChannel * servant,
					    CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

static void
skel_CosEventChannelAdmin_EventChannelFactory_new_event_channel(POA_CosEventChannelAdmin_EventChannelFactory * _ORBIT_servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						     CORBA_Environment * ev,
								CosEventChannelAdmin_EventChannel(*_impl_new_event_channel) (PortableServer_Servant servant,
						    CORBA_Environment * ev))
{
   CosEventChannelAdmin_EventChannel _ORBIT_retval;
   GIOPSendBuffer *_ORBIT_send_buffer;

   _ORBIT_retval = _impl_new_event_channel(_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 ORBitSkeleton 
get_skel_CosEventChannelAdmin_EventChannelFactory(POA_CosEventChannelAdmin_EventChannelFactory * servant,
					GIOPRecvBuffer * _ORBIT_recv_buffer,
						  gpointer * impl)
{
   gchar *opname = _ORBIT_recv_buffer->message.u.request.operation;

   switch (opname[0]) {
     case 'n':
	*impl = servant->vepv->CosEventChannelAdmin_EventChannelFactory_epv->new_event_channel;
	return (gpointer) skel_CosEventChannelAdmin_EventChannelFactory_new_event_channel;
	break;
     default:
	return NULL;
   }
}

static void 
init_local_objref_CosEventChannelAdmin_EventChannelFactory(CORBA_Object obj, POA_CosEventChannelAdmin_EventChannelFactory * servant)
{
   obj->vepv[CosEventChannelAdmin_EventChannelFactory__classid] = servant->vepv->CosEventChannelAdmin_EventChannelFactory_epv;
}

void 
POA_CosEventChannelAdmin_EventChannelFactory__init(POA_CosEventChannelAdmin_EventChannelFactory * servant,
						   CORBA_Environment * env)
{
   static const PortableServer_ClassInfo class_info =
   {(gpointer) & get_skel_CosEventChannelAdmin_EventChannelFactory, "IDL:omg.org/CosEventChannelAdmin/EventChannelFactory:1.0", (gpointer) & init_local_objref_CosEventChannelAdmin_EventChannelFactory};

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

void 
POA_CosEventChannelAdmin_EventChannelFactory__fini(POA_CosEventChannelAdmin_EventChannelFactory * servant,
						   CORBA_Environment * env)
{
   PortableServer_ServantBase__fini(servant, env);
}

/***************** End module CosEventChannelAdmin ***************/
