summaryrefslogtreecommitdiff
path: root/TAO/examples/POA/NewPOA/NewPOA.cpp
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-23 18:28:55 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-23 18:28:55 +0000
commitae5e2ecda23dd9af9f35b97fab0337a06bb55cec (patch)
tree995ce6f951d074b81b85eeb860ee468252d170ba /TAO/examples/POA/NewPOA/NewPOA.cpp
parent74205f4d54deada413395d34b3dfa99d51c6f7cb (diff)
downloadATCD-ae5e2ecda23dd9af9f35b97fab0337a06bb55cec.tar.gz
This commit was manufactured by cvs2svn to create tagbefore_proactor
'before_proactor'.
Diffstat (limited to 'TAO/examples/POA/NewPOA/NewPOA.cpp')
-rw-r--r--TAO/examples/POA/NewPOA/NewPOA.cpp147
1 files changed, 101 insertions, 46 deletions
diff --git a/TAO/examples/POA/NewPOA/NewPOA.cpp b/TAO/examples/POA/NewPOA/NewPOA.cpp
index 8a52461c054..80058d2f059 100644
--- a/TAO/examples/POA/NewPOA/NewPOA.cpp
+++ b/TAO/examples/POA/NewPOA/NewPOA.cpp
@@ -10,12 +10,12 @@
// = DESCRIPTION
// This program demonstrates creation of new POAs, as children of the root POA or the
// existing POA.
-// There are three new POA created in this example.
+// There are five new POA created in this example.
// The hierarchy of POAs looks like this.
//
// /-->first_poa-->first_poa/second_poa
// RootPOA--
-// \-->third_poa
+// \-->third_poa-->third_poa/fourth_poa-->third_poa/fourth_poa/fifth_poa
//
// = AUTHOR
// Irfan Pyarali
@@ -28,25 +28,29 @@ ACE_RCSID(NewPOA, NewPOA, "$Id$")
int
main (int argc, char **argv)
{
- // CORBA::Environment env;
-
- ACE_DECLARE_NEW_CORBA_ENV;
+ CORBA::Environment env;
// The first step Initialize the ORB
- CORBA::ORB_var orb = CORBA::ORB_init (argc,
- argv,
- 0,
- ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("CORBA::ORB_init");
+ return -1;
+ }
+
// Obtain the object reference to the RootPOA.
CORBA::Object_var obj =
orb->resolve_initial_references ("RootPOA");
// _narrow() the Object to get the POA object, i.e., the root_poa.
PortableServer::POA_var root_poa =
- PortableServer::POA::_narrow (obj.in (), ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ PortableServer::POA::_narrow (obj.in (), env);
+
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::_narrow");
+ return -1;
+ }
// Policies for the new POAs
CORBA::PolicyList policies (2);
@@ -54,13 +58,23 @@ main (int argc, char **argv)
// Threading policy
policies[0] =
- root_poa->create_thread_policy (PortableServer::ORB_CTRL_MODEL, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ root_poa->create_thread_policy (PortableServer::ORB_CTRL_MODEL, env);
+
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_thread_policy");
+ return -1;
+ }
// Lifespan policy
policies[1] =
- root_poa->create_lifespan_policy (PortableServer::TRANSIENT, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ root_poa->create_lifespan_policy (PortableServer::TRANSIENT, env);
+
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_lifespan_policy");
+ return -1;
+ }
// Creation of the firstPOA
ACE_CString name = "firstPOA";
@@ -68,70 +82,111 @@ main (int argc, char **argv)
root_poa->create_POA (name.c_str (),
PortableServer::POAManager::_nil (),
policies,
- ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_POA");
+ return -1;
+ }
// Creation of the new POA, i.e. firstPOA/secondPOA
- name = "secondPOA";
+ name += TAO_POA::name_separator ();
+ name += "secondPOA";
PortableServer::POA_var second_poa =
- first_poa->create_POA (name.c_str (),
- PortableServer::POAManager::_nil (),
- policies,
- ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ root_poa->create_POA (name.c_str (),
+ PortableServer::POAManager::_nil (),
+ policies,
+ env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_POA");
+ return -1;
+ }
- // Creating thirdPOA.
+ // Creating thirdPOA/fourthPOA/fifthPOA. The non-existing thirdPOA
+ // and thirdPOA/fourthPOA are created automatically.
name = "thirdPOA";
+ name += TAO_POA::name_separator ();
+ name += "forthPOA";
+ name += TAO_POA::name_separator ();
+ name += "fifthPOA";
- PortableServer::POA_var third_poa =
+ PortableServer::POA_var fifth_poa =
root_poa->create_POA (name.c_str (),
PortableServer::POAManager::_nil (),
policies,
- ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_POA");
+ return -1;
+ }
// Creation of the new POAs over, so destroy the Policy_ptr's.
for (CORBA::ULong i = 0;
- i < policies.length () && ACE_TRY_ENV.exception () == 0;
+ i < policies.length () && env.exception () == 0;
++i)
{
CORBA::Policy_ptr policy = policies[i];
- policy->destroy (ACE_TRY_ENV);
+ policy->destroy (env);
}
- ACE_CHECK_RETURN (-1);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::create_POA");
+ return -1;
+ }
// Get the names of all the POAs and print them out.
CORBA::String_var root_poa_name =
- root_poa->the_name (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ root_poa->the_name (env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::_narrow");
+ return -1;
+ }
CORBA::String_var first_poa_name =
- first_poa->the_name (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ first_poa->the_name (env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::_narrow");
+ return -1;
+ }
CORBA::String_var second_poa_name =
- second_poa->the_name (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
+ second_poa->the_name (env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::_narrow");
+ return -1;
+ }
- CORBA::String_var third_poa_name =
- third_poa->the_name (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ CORBA::String_var fifth_poa_name =
+ fifth_poa->the_name (env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::_narrow");
+ return -1;
+ }
ACE_DEBUG ((LM_DEBUG,
"%s\n%s\n%s\n%s\n",
root_poa_name.in (),
first_poa_name.in (),
second_poa_name.in (),
- third_poa_name.in ()));
-
+ fifth_poa_name.in ()));
+
// This should destroy all its children
root_poa->destroy (1,
1,
- ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
+ env);
+ if (env.exception () != 0)
+ {
+ env.print_exception ("PortableServer::POA::destroy");
+ return -1;
+ }
return 0;
}