diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp index cbfdc64764a..6da8a7450dc 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/upcall_command_ss.cpp @@ -129,7 +129,7 @@ be_visitor_operation_upcall_command_ss::visit_operation (be_operation * node) if (be_global->gen_thru_poa_collocation ()) { os << "get_ret_arg< "; - + this->gen_arg_template_param_name (node, node->return_type (), &os); @@ -255,7 +255,7 @@ be_visitor_operation_upcall_command_ss::gen_upcall (be_operation * node) } os << "_arg< "; - + this->gen_arg_template_param_name (arg, arg->field_type (), &os); @@ -273,12 +273,28 @@ be_visitor_operation_upcall_command_ss::gen_upcall (be_operation * node) arg->field_type (), &os); - os << ">::ret_val *> (this->args_[" << index << "])->arg ();" + os << ">::"; + + switch (arg->direction ()) + { + case AST_Argument::dir_IN: + os << "in"; + break; + case AST_Argument::dir_INOUT: + os << "inout"; + break; + case AST_Argument::dir_OUT: + os << "out"; + default: + break; + } + + os << "_arg_val *> (this->args_[" << index << "])->arg ();" << be_nl; } os << be_uidt_nl; - + } |