summaryrefslogtreecommitdiff
path: root/TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp')
-rw-r--r--TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp b/TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp
index d2abdc57ad9..c9c4e8da6ba 100644
--- a/TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp
+++ b/TAO/tao/IFR_Client/IFR_Client_Adapter_Impl.cpp
@@ -174,10 +174,28 @@ TAO_IFR_Client_Adapter_Impl::create_operation_list (
TAO::Unknown_IDL_Type (params[i].type.in ()));
value.replace (unk);
+ // Convert the parameter mode to an arg mode
+ CORBA::Flags flags = 0;
+ switch(params[i].mode)
+ {
+ case CORBA::PARAM_IN:
+ flags = CORBA::ARG_IN;
+ break;
+ case CORBA::PARAM_OUT:
+ flags = CORBA::ARG_OUT;
+ break;
+ case CORBA::PARAM_INOUT:
+ flags = CORBA::ARG_INOUT;
+ break;
+ default:
+ // Shouldn't happen
+ ACE_THROW (CORBA::INTERNAL());
+ }
+
// Add an argument to the NVList.
result->add_value (params[i].name.in (),
value,
- params[i].mode);
+ flags);
}
}