/* * CORBA POA tests * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Author: Mark McLoughlin */ #include #include #include #include "poatest-basic-shell.h" PortableServer_POA child_poa = CORBA_OBJECT_NIL; CORBA_ORB orb = CORBA_OBJECT_NIL; int main (int argc, char **argv) { CORBA_Environment ev; PortableServer_POA rootpoa; PortableServer_POAManager poa_mgr; poatest poatest_obj; CORBA_exception_init (&ev); orb = CORBA_ORB_init (&argc, argv, "", &ev); /* * Get the Root POA */ rootpoa = (PortableServer_POA) CORBA_ORB_resolve_initial_references (orb, "RootPOA", &ev); if (POATEST_EX (&ev)) { POATEST_PRINT_EX ("resolve_initial_references : ", &ev); return 1; } /* * Get the Root POA's POAManager */ poa_mgr = PortableServer_POA__get_the_POAManager (rootpoa, &ev); if (POATEST_EX (&ev)) { POATEST_PRINT_EX ("the_POAManager : ", &ev); return 1; } /* * Run the test */ poatest_obj = poatest_run (rootpoa, poa_mgr); if (poatest_obj == CORBA_OBJECT_NIL) return 1; /* * Call 'test' method and print out execption. */ poatest_test (poatest_obj, &ev); if (POATEST_EX (&ev)) { POATEST_PRINT_EX ("test : ", &ev); return 1; } CORBA_Object_release ((CORBA_Object) poatest_obj, &ev); CORBA_Object_release ((CORBA_Object) poa_mgr, &ev); CORBA_Object_release ((CORBA_Object) rootpoa, &ev); if (child_poa != CORBA_OBJECT_NIL) { PortableServer_POA_destroy ( child_poa, CORBA_FALSE, CORBA_FALSE, &ev); CORBA_Object_release ((CORBA_Object) child_poa, &ev); } CORBA_ORB_shutdown (orb, CORBA_TRUE, &ev); if (POATEST_EX (&ev)) { POATEST_PRINT_EX ("ORB_shutdown : ", &ev); return 1; } CORBA_ORB_destroy (orb, &ev); if (POATEST_EX (&ev)) { POATEST_PRINT_EX ("ORB_destroy : ", &ev); return 1; } CORBA_Object_release ((CORBA_Object) orb, &ev); return 0; }