summaryrefslogtreecommitdiff
path: root/TAO/tests/Param_Test/objref.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Param_Test/objref.cpp')
-rw-r--r--TAO/tests/Param_Test/objref.cpp162
1 files changed, 35 insertions, 127 deletions
diff --git a/TAO/tests/Param_Test/objref.cpp b/TAO/tests/Param_Test/objref.cpp
index 65b20584a33..9ef81ab4216 100644
--- a/TAO/tests/Param_Test/objref.cpp
+++ b/TAO/tests/Param_Test/objref.cpp
@@ -26,11 +26,7 @@ ACE_RCSID(Param_Test, objref, "$Id$")
// ************************************************************************
Test_ObjRef::Test_ObjRef (void)
- : opname_ (CORBA::string_dup ("test_objref")),
- in_courier (new CORBA::Object_ptr),
- inout_courier (new CORBA::Object_ptr),
- out_courier (new CORBA::Object_ptr),
- ret_courier (new CORBA::Object_ptr)
+ : opname_ (CORBA::string_dup ("test_objref"))
{
}
@@ -38,11 +34,6 @@ Test_ObjRef::~Test_ObjRef (void)
{
CORBA::string_free (this->opname_);
this->opname_ = 0;
-
- delete this->in_courier;
- delete this->inout_courier;
- delete this->out_courier;
- delete this->ret_courier;
}
const char *
@@ -55,7 +46,30 @@ void
Test_ObjRef::dii_req_invoke (CORBA::Request *req,
CORBA::Environment &ACE_TRY_ENV)
{
+ req->add_in_arg ("s1") <<= this->in_.in ();
+ req->add_inout_arg ("s2") <<= this->inout_.in ();
+ req->add_out_arg ("s3") <<= this->out_.in ();
+
+ req->set_return_type (_tc_Coffee);
+
req->invoke (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ Coffee_ptr tmp;
+ req->return_value () >>= tmp;
+ this->ret_ = Coffee::_duplicate (tmp);
+
+ CORBA::NamedValue_ptr o2 =
+ req->arguments ()->item (1, ACE_TRY_ENV);
+ ACE_CHECK;
+ *o2->value () >>= tmp;
+ this->inout_ = Coffee::_duplicate (tmp);
+
+ CORBA::NamedValue_ptr o3 =
+ req->arguments ()->item (2, ACE_TRY_ENV);
+ ACE_CHECK;
+ *o3->value () >>= tmp;
+ this->out_ = Coffee::_duplicate (tmp);
}
static const char *Coffee_Flavor [] = {
@@ -98,15 +112,6 @@ Test_ObjRef::init_parameters (Param_Test_ptr objref,
this->out_ = Coffee::_nil ();
this->ret_ = Coffee::_nil ();
- // DII
- *this->in_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->in_.in ());
- *this->inout_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->inout_.in ());
- *this->out_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->out_.in ());
- *this->ret_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->ret_.in ());
return 0;
}
ACE_CATCHANY
@@ -147,12 +152,6 @@ Test_ObjRef::reset_parameters (void)
this->out_ = Coffee::_nil ();
this->ret_ = Coffee::_nil ();
- // DII
- *this->in_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->in_.in ());
- *this->inout_courier = ACE_dynamic_cast (CORBA::Object_ptr,
- this->inout_.in ());
-
return 0;
}
@@ -182,101 +181,38 @@ Test_ObjRef::run_sii_test (Param_Test_ptr objref,
return -1;
}
-int
-Test_ObjRef::add_args (CORBA::NVList_ptr param_list,
- CORBA::NVList_ptr retval,
- CORBA::Environment &ACE_TRY_ENV)
-{
- ACE_TRY
- {
- CORBA::Any in_arg (_tc_Coffee,
- this->in_courier,
- 0);
-
- CORBA::Any inout_arg (_tc_Coffee,
- this->inout_courier,
- 0);
-
- CORBA::Any out_arg (_tc_Coffee,
- this->out_courier,
- 0);
-
- // Add parameters.
- param_list->add_value ("o1",
- in_arg,
- CORBA::ARG_IN,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- param_list->add_value ("o2",
- inout_arg,
- CORBA::ARG_INOUT,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- param_list->add_value ("o3",
- out_arg,
- CORBA::ARG_OUT,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Add return value.
- CORBA::NamedValue *item = retval->item (0,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- item->value ()->replace (_tc_Coffee,
- this->ret_courier,
- 0, // does not own
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- return 0;
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "Test_ObjRef::add_args\n");
-
- }
- ACE_ENDTRY;
- return -1;
-}
-
CORBA::Boolean
Test_ObjRef::check_validity (void)
{
// Environemnt variable
ACE_DECLARE_NEW_CORBA_ENV;
- //CORBA::Environment env;
-
- Coffee::Desc_var ret_desc;
- const char *in = 0;
- const char *out = 0;
- const char *inout = 0;
-
ACE_TRY
{
+ if (CORBA::is_nil (this->in_.in ())
+ || CORBA::is_nil (this->inout_.in ())
+ || CORBA::is_nil (this->out_.in ())
+ || CORBA::is_nil (this->ret_.in ()))
+ return 0;
Coffee::Desc_var in_desc =
this->in_->description (ACE_TRY_ENV);
ACE_TRY_CHECK;
- in = in_desc->name.in ();
+ const char *in = in_desc->name.in ();
Coffee::Desc_var inout_desc =
this->inout_->description (ACE_TRY_ENV);
ACE_TRY_CHECK;
- inout = inout_desc->name.in ();
+ const char *inout = inout_desc->name.in ();
Coffee::Desc_var out_desc =
this->out_->description (ACE_TRY_ENV);
ACE_TRY_CHECK;
- out = out_desc->name.in ();
+ const char *out = out_desc->name.in ();
- ret_desc = this->out_->description (ACE_TRY_ENV);
+ Coffee::Desc_var ret_desc = this->out_->description (ACE_TRY_ENV);
ACE_TRY_CHECK;
const char* ret = ret_desc->name.in ();
@@ -298,37 +234,9 @@ Test_ObjRef::check_validity (void)
}
CORBA::Boolean
-Test_ObjRef::check_validity (CORBA::Request_ptr /*req*/)
+Test_ObjRef::check_validity (CORBA::Request_ptr)
{
- //ACE_UNUSED_ARG (req);
- //CORBA::Environment env;
- ACE_DECLARE_NEW_CORBA_ENV;
-
- // Narrow each checked variable into its _var before
- // calling check_validity().
-
- ACE_TRY
- {
- this->inout_ = Coffee::_narrow (*this->inout_courier,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- this->out_ = Coffee::_narrow (*this->out_courier,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- this->ret_ = Coffee::_narrow (*this->ret_courier,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- return this->check_validity ();
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "_narrow from DII result");
- }
- ACE_ENDTRY;
- return 0;
+ return this->check_validity ();
}
void