summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/Property/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/Property/client.cpp')
-rw-r--r--TAO/orbsvcs/tests/Property/client.cpp763
1 files changed, 763 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Property/client.cpp b/TAO/orbsvcs/tests/Property/client.cpp
new file mode 100644
index 00000000000..bfc5efa2dd0
--- /dev/null
+++ b/TAO/orbsvcs/tests/Property/client.cpp
@@ -0,0 +1,763 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/orbsvcs/tests/Property
+//
+// = FILENAME
+// client.cpp
+//
+// = DESCRIPTION
+// Test client for the Property Service.
+//
+// = AUTHORS
+// Alexander Babu Arulanthu <alex@cs.wustl.edu>
+//
+// ============================================================================
+
+#include "client.h"
+#include "tao/debug.h"
+
+ACE_RCSID(CosPropertyService, client, "$Id$")
+
+ Client::Client (void)
+{
+}
+
+int
+Client::init (int argc,
+ char *argv[]
+ ACE_ENV_ARG_DECL)
+{
+ // Init the ORB.
+ manager_.init (argc,
+ argv
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Initialize the naming services
+ if (my_name_client_.init (manager_.orb()) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize "
+ "the TAO_Naming_Client. \n"),
+ -1);
+
+ // Bind PropertySetDef Object.
+
+ CosNaming::Name propsetdef_name (1);
+ propsetdef_name.length (1);
+ propsetdef_name [0].id = CORBA::string_dup ("PropertySetDef");
+ CORBA::Object_var propsetdef_obj = my_name_client_->resolve (propsetdef_name
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ this->propsetdef_ = CosPropertyService::PropertySetDef::_narrow (propsetdef_obj.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ if (CORBA::is_nil (this->propsetdef_.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Could not resolve propsetdef in Naming server"),
+ -1);
+
+ return 0;
+}
+
+// Testing the methods of the property service.
+
+int
+Client::property_tester (ACE_ENV_SINGLE_ARG_DECL)
+{
+ // = Testing PropertySet & Iterators.
+
+ // Testing define_property () of PropertySet interface.
+ this->test_define_property (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Test the number of properties.
+ this->test_get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing get_all_property_names.
+ this->test_get_all_property_names (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Test get_property_value.
+ this->test_get_property_value (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing delete property.
+ this->test_delete_property ("no_property" ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing get_properties.
+ this->test_get_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing delete_properties.
+ this->test_delete_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Test the number of properties.
+ this->test_get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing define_properties.
+ this->test_define_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Test the number of properties.
+ this->test_get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing get_all_property_names.
+ this->test_get_all_property_names (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Testing get_all_properties.
+ this->test_get_all_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // = Testing PropertySetDef & Iterators.
+
+ // Testing define_property_with_mode.
+ this->test_define_property_with_mode (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+// Testing define_property.
+
+int
+Client::test_define_property (ACE_ENV_SINGLE_ARG_DECL)
+{
+ CORBA::Any anyval;
+
+ // Prepare a char and "define" that in the PropertySet.
+ CORBA::Char ch = '#';
+ anyval <<= CORBA::Any::from_char (ch);
+ ch = '*';
+ anyval >>= CORBA::Any::to_char (ch);
+
+ this->propsetdef_->define_property ("char_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a Short and "define" that in the PropertySet.
+ CORBA::Short s = 3;
+ anyval <<= s;
+ s = 7;
+ anyval >>= s;
+
+ propsetdef_->define_property ("short_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a Long and "define" that in the PropertySet.
+ CORBA::Long l = 931232;
+ anyval <<= l;
+ l = 931233;
+ anyval >>= l;
+ CORBA::Any newany(anyval);
+ propsetdef_->define_property ("long_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a Float and "define" that in the PropertySet.
+ CORBA::Float f = 3.14F;
+ anyval <<= f;
+ f = 4.14F;
+ anyval >>= f;
+
+ propsetdef_->define_property ("float_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a String and "define" that in the PropertySet.
+ CORBA::String_var strvar (CORBA::string_dup ("Test_String"));
+ anyval <<= strvar.in ();
+ const char * newstr;
+ anyval >>= newstr;
+ propsetdef_->define_property ("string_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+// Testing get_all_property_names of the PropertySet.
+
+int
+Client::test_get_all_property_names (ACE_ENV_SINGLE_ARG_DECL)
+{
+ // Get the size.
+ CORBA::ULong num_of_properties =
+ propsetdef_->get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Get half on the names and half of on the iterator.
+ CORBA::ULong how_many = num_of_properties / 2;
+
+ // The extra ptr's and out's required to avoind SunnCC's warning
+ // when foo.out () is passed to a funtion.
+ CosPropertyService::PropertyNames_var names_var;
+ CosPropertyService::PropertyNames *names_ptr = 0;
+ CosPropertyService::PropertyNames_out names_out (names_ptr);
+
+ CosPropertyService::PropertyNamesIterator_var iterator_var;
+ CosPropertyService::PropertyNamesIterator_ptr iterator_ptr;
+ CosPropertyService::PropertyNamesIterator_out iterator_out (iterator_ptr);
+
+ propsetdef_->get_all_property_names (how_many,
+ names_out,
+ iterator_out
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Get the values back to var.
+ names_var = names_out.ptr ();
+ iterator_var = iterator_out.ptr ();
+
+ // Print out the names in the names-sequence.
+ if (TAO_debug_level > 0)
+ {
+ if (names_var.ptr () != 0)
+ {
+ CORBA::ULong len = names_var->length ();
+
+ for (CORBA::ULong ni = 0; ni < len; ni++)
+ ACE_DEBUG ((LM_DEBUG,
+ "%s\n",
+ (const char *) names_var [ni]));
+ }
+
+ // Iterate thru and print out the names in the iterator, if any.
+ if (iterator_var.ptr () != 0)
+ {
+ // Helper variables to stop the SunCC warnings on on foo.out
+ // ().
+ CosPropertyService::PropertyName name_ptr = 0;
+ CosPropertyService::PropertyName_out name_out (name_ptr);
+
+ // Call the function.
+ CORBA::Boolean next_one_result = iterator_var->next_one (name_out ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Get the values back on a _var variable.
+ CosPropertyService::PropertyName_var name_var = name_out.ptr ();
+
+ while (next_one_result == 1)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s\n", name_var.in ()));
+
+ // Call the function to iterate again.
+ next_one_result = iterator_var->next_one (name_out ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Get the values back on a _var variable.
+ name_var = name_out.ptr ();
+ }
+
+ ACE_CHECK_RETURN (-1);
+ }
+ }
+ return 0;
+}
+
+// Test get_properties. Give a sequence of names and get all their
+// properties.
+
+int
+Client::test_get_properties (ACE_ENV_SINGLE_ARG_DECL)
+{
+ // Get float_property, string_property and no_property. If return
+ // value is false and type is tc_void then that name is not there in
+ // the PropertySet.
+ CosPropertyService::PropertyNames_var names;
+ CosPropertyService::PropertyNames *names_ptr;
+
+ ACE_NEW_RETURN (names_ptr,
+ CosPropertyService::PropertyNames,
+ -1);
+ names = names_ptr;
+
+ names->length (3);
+ names [0u] = CORBA::string_dup ("float_property");
+ //names [1] = CORBA::string_dup ("string_property");
+ names [1u] = CORBA::string_dup ("long_property");
+ names [2u] = CORBA::string_dup ("char_property");
+ //names [2] = CORBA::string_dup ("no_property");
+
+
+ CosPropertyService::Properties *properties_ptr = 0;
+ CosPropertyService::Properties_out properties_out (properties_ptr);
+
+ // Get the properties.
+ CORBA::Boolean return_val = propsetdef_->get_properties (names.in (),
+ properties_out
+ ACE_ENV_ARG_PARAMETER);
+ ACE_UNUSED_ARG (return_val);
+ ACE_CHECK_RETURN (-1);
+
+
+ if (TAO_debug_level > 0)
+ {
+ // Get the value to the _var.
+ CosPropertyService::Properties_var properties = properties_out.ptr ();
+
+ if (properties.ptr () != 0)
+ {
+ // Go thru the properties and print them out, if they are not
+ // _tc_void typed values.
+ CORBA::ULong len = properties->length ();
+
+ for (CORBA::ULong pi = 0; pi < len; pi++)
+ {
+ // Print the name.
+ ACE_DEBUG ((LM_DEBUG,
+ "%s : ",
+ (const char *) properties [pi].property_name.in ()));
+
+ // Print the value.
+ CORBA::Char char_val;
+ CORBA::Long long_val;
+ CORBA::ULong ulong_val;
+ CORBA::Float float_val;
+ CORBA::Double double_val;
+ const char * string_val;
+
+ if (properties [pi].property_value >>=
+ CORBA::Any::to_char (char_val))
+ {
+ ACE_DEBUG ((LM_DEBUG, "%c\n", char_val));
+ }
+ else if (properties [pi].property_value >>= long_val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%d\n", long_val));
+ }
+ else if (properties [pi].property_value >>= ulong_val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%ld\n", ulong_val));
+ }
+ else if (properties [pi].property_value >>= float_val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%f\n", long_val));
+ }
+ else if (properties [pi].property_value >>= double_val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%f\n", double_val));
+ }
+ else if (properties [pi].property_value >>= string_val)
+ {
+ ACE_DEBUG ((LM_DEBUG, "%s\n", string_val));
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+// Testing, get_number_of_properties.
+
+int
+Client::test_get_number_of_properties (ACE_ENV_SINGLE_ARG_DECL)
+{
+ CORBA::ULong nproperties = this->propsetdef_->get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "\nNumber of props : %d\n",
+ nproperties));
+ }
+ return 0;
+}
+
+// Test delete_property.
+
+int
+Client::test_delete_property (const char *property_name
+ ACE_ENV_ARG_DECL)
+{
+ ACE_TRY
+ {
+ CORBA::String_var property_name_var (property_name);
+
+ this->propsetdef_->delete_property (property_name_var.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (CORBA::UserException, ex)
+ {
+ // For no property, it is ok to get the user exception.
+ return 0;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ex, "Not an user exception");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}
+
+// Test delete_properties.
+// Make a sequence of property names and delete them from the
+// PropertySet. Deleting char, short, long, float and string
+// properties.
+
+int
+Client::test_delete_properties (ACE_ENV_SINGLE_ARG_DECL)
+{
+ CosPropertyService::PropertyNames prop_names;
+ prop_names.length (3);
+ prop_names [0] = CORBA::string_dup ("char_property");
+ prop_names [1] = CORBA::string_dup ("short_property");
+ prop_names [2] = CORBA::string_dup ("long_property");
+ // prop_names [3] = CORBA::string_dup ("no_property");
+ this->propsetdef_->delete_properties (prop_names
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( 0);
+
+ return 0;
+}
+
+// Defines a sequnce of properties containing, char, short, long,
+// float in the property set.
+
+int
+Client::test_define_properties (ACE_ENV_SINGLE_ARG_DECL)
+{
+ CosPropertyService::Properties nproperties;
+ nproperties.length (4);
+ CORBA::Any anyval;
+ // Prepare a char and "define" that in the PropertySet.
+ CORBA::Char ch = '#';
+ anyval <<= CORBA::Any::from_char (ch);
+ ch = '*';
+ anyval >>= CORBA::Any::to_char (ch);
+ nproperties[0].property_name = CORBA::string_dup ("char_property");
+ nproperties[0].property_value <<= CORBA::Any::from_char (ch);
+
+ // Prepare a Short and "define" that in the PropertySet.
+ CORBA::Short s = 3;
+ anyval <<= s;
+ s = 7;
+ anyval >>= s;
+ nproperties[1].property_name = CORBA::string_dup ("short_property");
+ nproperties[1].property_value <<= s;
+
+ // Prepare a Long and "define" that in the PropertySet.
+ CORBA::Long l = 931232;
+ anyval <<= l;
+ l = 931233;
+ anyval >>= l;
+ nproperties[2].property_name = CORBA::string_dup ("long_property");
+ nproperties[2].property_value <<= l;
+
+ // Prepare a Float and "define" that in the PropertySet.
+ CORBA::Float f = 3.14F;
+ anyval <<= f;
+ f = 4.14F;
+ anyval >>= f;
+ nproperties[3].property_name = CORBA::string_dup ("float_property");
+ nproperties[3].property_value <<= f;
+
+ // Define this sequence of properties now.
+ this->propsetdef_->define_properties (nproperties ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+
+ return 0;
+}
+
+// Test get_all_properties.
+
+int
+Client::test_get_all_properties (ACE_ENV_SINGLE_ARG_DECL)
+{
+ // Get the number of current properties.
+ CORBA::ULong num_of_properties =
+ this->propsetdef_->get_number_of_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+ ACE_UNUSED_ARG (num_of_properties);
+
+ // Get half on the properties and half of on the iterator.
+ CORBA::ULong how_many = 1;
+
+ // Helper variables to avoid SunCC warnings.
+ CosPropertyService::Properties *properties_ptr = 0;
+ CosPropertyService::Properties_out properties_out (properties_ptr);
+ CosPropertyService::PropertiesIterator_ptr iterator_ptr = 0;
+ CosPropertyService::PropertiesIterator_out iterator_out (iterator_ptr);
+
+ propsetdef_->get_all_properties (how_many,
+ properties_out,
+ iterator_out
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+
+ // Get these values to the _var's.
+ CosPropertyService::Properties_var properties = properties_out.ptr ();
+ CosPropertyService::PropertiesIterator_var iterator = iterator_out.ptr ();
+
+ // Print out the properties now.
+ if (TAO_debug_level > 0)
+ {
+ if (properties.ptr () != 0)
+ {
+ CORBA::ULong len = properties->length ();
+
+ for (CORBA::ULong pi = 0; pi < len; pi++)
+ {
+ // Print the property_name.
+ ACE_DEBUG ((LM_DEBUG,
+ "%s : ",
+ properties [pi].property_name.in ()));
+
+ // Print the value if type is not tk_void.
+ if (properties [pi].property_value.type () == CORBA::_tc_void)
+ ACE_DEBUG ((LM_DEBUG,"Void\n"));
+
+ if (properties [pi].property_value.type () == CORBA::_tc_float)
+ {
+ CORBA::Float f;
+ properties [pi].property_value >>= f;
+ ACE_DEBUG ((LM_DEBUG,"%f\n", f));
+ }
+
+ if (properties [pi].property_value.type () == CORBA::_tc_string)
+ {
+ const char* str;
+ properties [pi].property_value >>= str;
+ ACE_DEBUG ((LM_DEBUG,"%s\n", str));
+ }
+
+ if (properties [pi].property_value.type () == CORBA::_tc_long)
+ {
+ CORBA::Long l;
+ properties [pi].property_value >>= l;
+ ACE_DEBUG ((LM_DEBUG,"%d\n", l));
+ }
+ }
+ }
+
+ // Pass thru the iterator.
+ if (iterator.ptr () != 0)
+ {
+ // Helper variables to avoid warnings with .out () in SunCC.
+ CosPropertyService::Property* property_ptr = 0;
+ CosPropertyService::Property_out property_out (property_ptr);
+
+ // Call the funtion.
+ CORBA::Boolean next_one_result = iterator->next_one (property_out
+ ACE_ENV_ARG_PARAMETER);
+
+ // Get the value to the _var variable.
+ CosPropertyService::Property_var property = property_out.ptr ();
+
+ while (next_one_result != 0)
+ {
+ ACE_CHECK_RETURN ( -1);
+ ACE_DEBUG ((LM_DEBUG,
+ "%s : ",
+ property->property_name.in ()));
+
+ // Print the property_value.
+ if (property->property_value.type () == CORBA::_tc_char)
+ {
+ CORBA::Char c;
+ property->property_value >>= CORBA::Any::to_char (c);
+ ACE_DEBUG ((LM_DEBUG,"%c\n", c));
+ }
+
+ if (property->property_value.type () == CORBA::_tc_short)
+ {
+ CORBA::Short s;
+ property->property_value >>= s;
+ ACE_DEBUG ((LM_DEBUG,"%d\n", s));
+ }
+
+ if (property->property_value.type () == CORBA::_tc_float)
+ {
+ CORBA::Float f;
+ property->property_value >>= f;
+ ACE_DEBUG ((LM_DEBUG,"%f\n", f));
+ }
+
+ if (property->property_value.type () == CORBA::_tc_string)
+ {
+ const char* str;
+ property->property_value >>= str;
+ ACE_DEBUG ((LM_DEBUG,"%s\n", str));
+ }
+
+ if (property->property_value.type () == CORBA::_tc_long)
+ {
+ CORBA::Long l;
+ property->property_value >>= l;
+ ACE_DEBUG ((LM_DEBUG,"%d\n", l));
+ }
+
+ // Call the function for the next iteraton.
+ next_one_result = iterator->next_one (property_out
+ ACE_ENV_ARG_PARAMETER);
+
+ // Get the value to the _var variable.
+ property = property_out.ptr ();
+ }
+ ACE_CHECK_RETURN ( -1);
+ }
+ }
+ return 0;
+}
+
+// Testing define property with mode.
+// Defines char, short, long and float properties with different modes.
+int
+Client::test_define_property_with_mode (ACE_ENV_SINGLE_ARG_DECL)
+{
+ CORBA::Any anyval;
+
+ // Prepare a char and "define" that in the PropertySet.
+ CORBA::Char ch = '#';
+ anyval <<= CORBA::Any::from_char (ch);
+ ch = '*';
+ anyval >>= CORBA::Any::to_char (ch);
+
+ this->propsetdef_->define_property_with_mode ("char_property",
+ anyval,
+ CosPropertyService::normal
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a Short and "define" that in the PropertySet.
+ CORBA::Short s = 3;
+ anyval <<= s;
+ s = 7;
+ anyval >>= s;
+
+ propsetdef_->define_property_with_mode ("short_property",
+ anyval,
+ CosPropertyService::read_only
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (-1);
+
+ // Prepare a Long and "define" that in the PropertySet.
+ CORBA::Long l = 931232;
+ anyval <<= l;
+ l = 931233;
+ anyval >>= l;
+ CORBA::Any newany(anyval);
+ propsetdef_->define_property_with_mode ("long_property",
+ anyval,
+ CosPropertyService::fixed_normal
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+
+
+ // Prepare a Float and "define" that in the PropertySet.
+ CORBA::Float f = 3.14F;
+ anyval <<= f;
+ f = 4.14F;
+ anyval >>= f;
+ propsetdef_->define_property_with_mode ("float_property",
+ anyval,
+ CosPropertyService::fixed_readonly
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+
+ // Prepare a String and "define" that in the PropertySet.
+ CORBA::String_var strvar (CORBA::string_dup ("Test_String"));
+ anyval <<= strvar.in ();
+ const char* newstr;
+ anyval >>= newstr;
+
+ propsetdef_->define_property ("string_property",
+ anyval
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN ( -1);
+
+ return 0;
+}
+
+int
+Client::test_get_property_value (ACE_ENV_SINGLE_ARG_DECL)
+{
+ ACE_TRY
+ {
+ // Get the ior property.
+ CORBA::Any_ptr any_ptr = this->propsetdef_->get_property_value ("PropertySetDef_IOR"
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ // Check whether the IOR is fine.
+ CORBA::Object_var propsetdef_object;
+ (*any_ptr) >>= CORBA::Any::to_object (propsetdef_object.out ());
+
+ CosPropertyService::PropertySetDef_var propsetdef =
+ CosPropertyService::PropertySetDef::_narrow (propsetdef_object.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (CORBA::is_nil (propsetdef.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "invalid object reference\n"),
+ -1);
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "get_property_value");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+ return 0;
+}
+
+int
+main (int argc, char **argv)
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+
+ ACE_TRY
+ {
+ Client client;
+
+ if (client.init (argc,
+ argv
+ ACE_ENV_ARG_PARAMETER) == -1)
+ return 1;
+ ACE_TRY_CHECK;
+
+ // client.run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ int ret = client.property_tester (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ if (ret != 0)
+ ACE_DEBUG ((LM_DEBUG, "Test failed\n"));
+ else
+ ACE_DEBUG ((LM_DEBUG, "Test succeeded\n"));
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "PropertyService Test : client");
+ return -1;
+ }
+ ACE_ENDTRY;
+ ACE_CHECK_RETURN (-1);
+
+ return 0;
+}