static void
impl_Wise2HSP_HSPmanagerFactory__destroy(impl_POA_Wise2HSP_HSPmanagerFactory *servant, CORBA_Environment *ev)
{
  PortableServer_ObjectId *objid;
  
  objid = PortableServer_POA_servant_to_id(servant->poa, servant, ev);
  PortableServer_POA_deactivate_object(servant->poa, objid, ev);
  CORBA_free(objid);
  
  POA_Wise2HSP_HSPmanagerFactory__fini((PortableServer_Servant)servant, ev);
  g_free(servant);
}
poatest
poatest_run (PortableServer_POA        rootpoa,
	     PortableServer_POAManager rootpoa_mgr)
{
	CORBA_Environment        ev;
	poatest                  poatest_obj;
	PortableServer_ObjectId *objid;

	CORBA_exception_init (&ev);
 
	/*
	 * Initialise the servant.
	 */
	POA_poatest__init (&poatest_servant, &ev);
	if (POATEST_EX (&ev)) {
		POATEST_PRINT_EX ("POA_poatest__init : ", &ev);
		return CORBA_OBJECT_NIL;
	}

	/*
	 * Imlicitly activate the Object.
	 * See sections 11.2.7 and 11.3.8.20.
	 */
	objid = PortableServer_POA_servant_to_id (rootpoa, &poatest_servant, &ev);
	if (POATEST_EX (&ev)) {
		POATEST_PRINT_EX ("servant_to_id : ", &ev);
		return CORBA_OBJECT_NIL;
	}

	/*
	 * Get reference for activated object
	 */
	poatest_obj = PortableServer_POA_id_to_reference (rootpoa, objid, &ev);
	if (POATEST_EX (&ev)) {
		POATEST_PRINT_EX ("id_to_reference : ", &ev);
		return CORBA_OBJECT_NIL;
	}

	CORBA_free ( objid );

	/*
	 * Activate the POAManager. POA will now accept requests
	 */
	PortableServer_POAManager_activate (rootpoa_mgr, &ev);
	if (POATEST_EX (&ev)) {
		POATEST_PRINT_EX ("POAManager_activate : ", &ev);
		return CORBA_OBJECT_NIL;
	}

	return poatest_obj;
}
static void
do_window_close(GtkWidget *widget, gpointer _servant)
{
	CORBA_Environment ev;
	PortableServer_ObjectId *objid;
	impl_POA_GNOME_FileManagerWindow *servant = _servant;
	
	CORBA_exception_init(&ev);
	objid = PortableServer_POA_servant_to_id (servant->poa, _servant, &ev);
	PortableServer_POA_deactivate_object (servant->poa, objid, &ev);
	CORBA_free(objid);
	POA_GNOME_FileManagerWindow__fini(_servant, &ev);
	
	g_free(servant);
	CORBA_exception_free(&ev);
}
Esempio n. 4
0
static PyObject *
pyorbit_poa_servant_to_id(PyCORBA_Object *self, PyObject *args)
{
    CORBA_Environment ev;
    PyPortableServer_Servant *pyservant;
    PortableServer_ServantBase *servant;
    PortableServer_ObjectId *id;
    PyObject *ret;

    if (!PyArg_ParseTuple(args, "O!:POA.activate_object",
			  &PyPortableServer_Servant_Type, &pyservant))
	return NULL;
    servant = PYSERVANT_TO_SERVANT(pyservant);

    CORBA_exception_init(&ev);
    id = PortableServer_POA_servant_to_id((PortableServer_POA)self->objref,
					  servant, &ev);
    if (pyorbit_check_ex(&ev))
	return NULL;

    ret = PyString_FromStringAndSize((char *) id->_buffer, id->_length);
    CORBA_free(id);
    return ret;
}