summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/Property/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/Property/server.cpp')
-rw-r--r--TAO/orbsvcs/tests/Property/server.cpp121
1 files changed, 121 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Property/server.cpp b/TAO/orbsvcs/tests/Property/server.cpp
new file mode 100644
index 00000000000..bcaeae71a5f
--- /dev/null
+++ b/TAO/orbsvcs/tests/Property/server.cpp
@@ -0,0 +1,121 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/CosPropertyService
+//
+// = FILENAME
+// server.cpp
+//
+// = DESCRIPTION
+// Test server for the CosPropertyService
+//
+// = AUTHORS
+// Alexander Babu Arulanthu <alex@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "server.h"
+
+ACE_RCSID(CosPropertyService, server, "$Id$")
+
+// Main program
+
+int
+main (int argc, char ** argv)
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+
+ ACE_TRY
+ {
+ TAO_ORB_Manager m;
+
+ // Initialize the ORB.
+ m.init_child_poa (argc,
+ argv,
+ "child_poa"
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // Using naming server.
+ TAO_Naming_Client my_name_client;
+ if (my_name_client.init (m.orb ()) < 0)
+ return 1;
+
+ // Create PropertySetDef object and register.
+ TAO_PropertySetDef *propsetdef_impl;
+ ACE_NEW_RETURN (propsetdef_impl,
+ TAO_PropertySetDef,
+ -1);
+ CosPropertyService::PropertySetDef_var propsetdef =
+ propsetdef_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CosNaming::Name propsetdef_name (1);
+ propsetdef_name.length (1);
+ propsetdef_name[0].id = CORBA::string_dup ("PropertySetDef");
+ my_name_client->bind (propsetdef_name,
+ propsetdef.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ CORBA::Any any_val;
+
+ // Make this IOR as one of the properties in there.
+ any_val <<= propsetdef_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CORBA::Object_var ior = propsetdef_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ CORBA::Object_ptr ior_ptr = ior.in ();
+ any_val <<= ior_ptr;
+ // any_val.replace (CORBA::_tc_Object,
+ // &ior_ptr,
+ // 1
+ // ACE_ENV_ARG_PARAMETER);
+ // ACE_TRY_CHECK;
+
+ propsetdef_impl->define_property_with_mode ("PropertySetDef_IOR",
+ any_val,
+ CosPropertyService::fixed_readonly
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // Create PropertySet factory and then register.
+ TAO_PropertySetFactory *propset_factory_impl;
+ ACE_NEW_RETURN (propset_factory_impl,
+ TAO_PropertySetFactory,
+ -1);
+ CosPropertyService::PropertySetFactory_var propset_factory =
+ propset_factory_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ CosNaming::Name propset_factory_name (1);
+ propset_factory_name.length (1);
+ propset_factory_name[0].id = CORBA::string_dup ("PropertySetFactory");
+ my_name_client->bind (propset_factory_name,
+ propset_factory.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // Run the ORB Event loop.
+ m.run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::SystemException, sysex)
+ {
+ ACE_PRINT_EXCEPTION (sysex,
+ "System Exception");
+ return 1;
+ }
+ ACE_CATCH (CORBA::UserException, userex)
+ {
+ ACE_PRINT_EXCEPTION (userex,
+ "User Exception");
+ return 1;
+ }
+ ACE_ENDTRY;
+ ACE_DEBUG ((LM_DEBUG,
+ "\nServer is terminating"));
+ return 0;
+}