diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-09-02 20:20:43 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-09-02 20:20:43 +0000 |
commit | 41a922663e4cdecdfa62b0bd5838eba6b9e49284 (patch) | |
tree | 45e6e41d6666a65cddf393e81f942dbb74da50e0 | |
parent | 03baf30279723091e7023ecdc9bca517f320d1eb (diff) | |
download | ATCD-41a922663e4cdecdfa62b0bd5838eba6b9e49284.tar.gz |
ChangeLogTag:Thu Sep 02 15:15:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp | 37 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/operation_ami_cs.cpp | 13 |
2 files changed, 38 insertions, 12 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp index 6c07e729069..d07f70a467f 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp @@ -682,16 +682,16 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node *os << node->local_name () << "\"," << be_nl << "istub->orb_core ()," << be_nl; - + // Next argument is the reply handler skeleton for this method. - + // Get the interface. be_decl *interface = be_interface::narrow_from_scope (node->defined_in ())->decl (); { char *full_name = 0; - - interface->compute_full_name ("AMI_", + + interface->compute_full_name ("AMI_", "_Handler", full_name); @@ -705,7 +705,7 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node else *os << "_get_"; } - + *os << node->local_name () << "_skel," << be_nl; delete full_name; @@ -713,9 +713,9 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node - // Next argument is the ami handler passed in for this method. + // Next argument is the ami handler passed in for this method. *os << "_tao_ami_handler" << be_uidt_nl - + << ");" << be_uidt_nl; *os << "\n" << be_nl @@ -724,11 +724,24 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node *os << "_tao_call.start (ACE_TRY_ENV);" << be_nl; // Check if there is an exception. - // Return type is void, so we know what to generate here. + // Return type is void, so we know what to generate here. *os << "ACE_CHECK;"; - + + // Prepare the request header + *os << "_tao_call.prepare_header ("; + switch (node->flags ()) + { + case AST_Operation::OP_oneway: + *os << "0"; + break; + default: + *os << "1"; + } + *os << ", ACE_TRY_ENV);" << be_nl + << "ACE_CHECK;\n" << be_nl; + // Now make sure that we have some in and inout - // parameters. Otherwise, there is nothing to be marshaled in. + // parameters. Otherwise, there is nothing to be marshaled in. if (this->has_param_type (node, AST_Argument::dir_IN) || this->has_param_type (node, AST_Argument::dir_INOUT)) { @@ -780,7 +793,7 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node { *os << "_tao_call.invoke (0, 0, ACE_TRY_ENV);"; } - + *os << be_uidt_nl; // Check if there is an exception. @@ -816,6 +829,6 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation *node << be_uidt_nl << "}" << be_nl; // Return type is void and we are going to worry about OUT or INOUT - // parameters. Return from here. + // parameters. Return from here. return 0; } diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ami_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ami_cs.cpp index 0af00e2bf7c..dec8db78a4c 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ami_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ami_cs.cpp @@ -680,6 +680,19 @@ be_compiled_visitor_operation_ami_cs::gen_marshal_and_invoke (be_operation } + // Prepare the request header + *os << "_tao_call.prepare_header ("; + switch (node->flags ()) + { + case AST_Operation::OP_oneway: + *os << "0"; + break; + default: + *os << "1"; + } + *os << ", ACE_TRY_ENV);" << be_nl + << "ACE_CHECK;\n" << be_nl; + // now make sure that we have some in and inout parameters. Otherwise, there // is nothing to be marshaled in if (this->has_param_type (node, AST_Argument::dir_IN) || |