diff options
Diffstat (limited to 'TAO/TAO_IDL')
9 files changed, 185 insertions, 81 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index 0434c4ecd0f..f86ebd28dd1 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -1505,26 +1505,43 @@ be_interface::gen_skel_helper (be_interface *derived, if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) { // generate the static method corresponding to this method - *os << "static void " << d->local_name () << - "_skel (CORBA::ServerRequest &req, void *obj," - << " void *context, CORBA::Environment &env);\n\n"; + *os << "static void " << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req, " << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env =" << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; } else { // generate code in the inline file // generate the static method corresponding to this method - *os << "ACE_INLINE void " << derived->full_skel_name () << - "::" << d->local_name () << - "_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &env)" << nl; - *os << "{\n"; - os->incr_indent (); - *os << ancestor->full_skel_name () << "_ptr impl = (" << - derived->full_skel_name () << "_ptr) obj;" << nl; - *os << ancestor->full_skel_name () << "::" << d->local_name - () << "_skel (req, (" << ancestor->full_skel_name () << - "_ptr) impl, context, env);\n"; - os->decr_indent (); - *os << "}\n"; + *os << "ACE_INLINE void " + << derived->full_skel_name () << "::" + << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl; + *os << ancestor->full_skel_name () + << "_ptr impl = (" + << derived->full_skel_name () + << "_ptr) obj;" << be_nl; + *os << ancestor->full_skel_name () + << "::" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "req," << be_nl + << "(" << ancestor->full_skel_name () + << "_ptr) impl," << be_nl + << "context," << be_nl + << " env" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}\n"; } } else if (d->node_type () == AST_Decl::NT_attr) @@ -1539,26 +1556,43 @@ be_interface::gen_skel_helper (be_interface *derived, if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) { // generate the static method corresponding to this method - *os << "static void _get_" << d->local_name () << - "_skel (CORBA::ServerRequest &req, void *obj," - << " void *context, CORBA::Environment &env);\n\n"; + *os << "static void _get_" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env =" << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; } else { // generate code in the inline file // generate the static method corresponding to this method - *os << "ACE_INLINE void " << derived->full_skel_name () << - "::_get_" << d->local_name () << - "_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &env)" << nl; - *os << "{\n"; - os->incr_indent (); - *os << ancestor->full_skel_name () << "_ptr impl = (" << - derived->full_skel_name () << "_ptr) obj;" << nl; - *os << ancestor->full_skel_name () << "::_get_" << d->local_name - () << "_skel (req, (" << ancestor->full_skel_name () << - "_ptr) impl, context, env);\n"; - os->decr_indent (); - *os << "}\n"; + *os << "ACE_INLINE void " + << derived->full_skel_name () << "::_get_" + << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << ancestor->full_skel_name () + << "_ptr impl = (" + << derived->full_skel_name () + << "_ptr) obj;" << nl; + *os << ancestor->full_skel_name () + << "::_get_" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "req," << be_nl + << "(" << ancestor->full_skel_name () + << "_ptr) impl," << be_nl + << "context," << be_nl + << "env" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}\n"; } if (!attr->readonly ()) @@ -1567,29 +1601,46 @@ be_interface::gen_skel_helper (be_interface *derived, os->indent (); // start from current indentation level if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR) { - // generate the static method corresponding to this method - *os << "static void _set_" << d->local_name () << - "_skel (CORBA::ServerRequest &req, void *obj," - << " void *context, CORBA::Environment &env);\n\n"; + // generate the static method corresponding to + // this method + *os << "static void _set_" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; } else { // generate code in the inline file - // generate the static method corresponding to this method - *os << "ACE_INLINE void " << derived->full_skel_name () - << "::_set_" << d->local_name () << - "_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &env)" << - nl; - *os << "{\n"; - os->incr_indent (); - *os << ancestor->full_skel_name () << "_ptr impl = (" << - derived->full_skel_name () << "_ptr) obj;" << nl; - *os << ancestor->full_skel_name () << "::_get_" << - d->local_name () << "_skel (req, (" << - ancestor->full_skel_name () << - "_ptr) impl, context, env);\n"; - os->decr_indent (); - *os << "}\n"; + // generate the static method corresponding to + // this method + *os << "ACE_INLINE void " + << derived->full_skel_name () + << "::_set_" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &env" << be_uidt_nl + << ")" << be_uidt_nl + << "{" << be_idt_nl + << ancestor->full_skel_name () + << "_ptr impl = (" + << derived->full_skel_name () + << "_ptr) obj;" << be_nl; + *os << ancestor->full_skel_name () + << "::_get_" << d->local_name () + << "_skel (" << be_idt << be_idt_nl + << "req," << be_nl + << "(" << ancestor->full_skel_name () + << "_ptr) impl," << be_nl + << "context," << be_nl + << "env" << be_uidt_nl + << ");" << be_uidt << be_uidt_nl + << "}\n"; } } diff --git a/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp index 46619143dd2..46a63786e3a 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp @@ -106,8 +106,10 @@ int be_visitor_interface_collocated_sh::visit_interface (be_interface *node) *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl << "const char *logical_type_id," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl - << ");\n" << be_uidt; + << "CORBA::Environment &_tao_environment = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n"; if (this->visit_scope (node) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp index ba87c88c17d..5621a2e5c47 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp @@ -147,8 +147,13 @@ be_visitor_interface_ch::visit_interface (be_interface *node) << "// the static operations" << be_nl << "static " << node->local_name () << "_ptr " << "_duplicate (" << node->local_name () << "_ptr obj);" << be_nl - << "static " << node->local_name () << "_ptr " << "_narrow (" - << "CORBA::Object_ptr obj, CORBA::Environment &env);" << be_nl + << "static " << node->local_name () << "_ptr " + << "_narrow (" << be_idt << be_idt_nl + << "CORBA::Object_ptr obj," << be_nl + << "CORBA::Environment &env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt_nl << "static " << node->local_name () << "_ptr " << "_nil (void);\n\n"; // generate code for the interface definition by traversing thru the @@ -163,9 +168,11 @@ be_visitor_interface_ch::visit_interface (be_interface *node) } // the _is_a method os->indent (); - *os << "virtual CORBA::Boolean _is_a (" - << "const CORBA::Char *type_id, " << be_idt << be_idt_nl - << "CORBA::Environment &env" << be_uidt_nl + *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl + << "const CORBA::Char *type_id, " << be_nl + << "CORBA::Environment &env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl << ");" << be_uidt_nl << "virtual const char* " << "_interface_repository_id (void) const;" << be_uidt_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp index 402e4f66874..62b52961f6c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp @@ -109,7 +109,9 @@ be_visitor_interface_sh::visit_interface (be_interface *node) *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl << "const char* logical_type_id," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl + << "CORBA::Environment &_tao_environment = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl << ");" << be_uidt_nl; *os << "virtual void* _downcast (" << be_idt << be_idt_nl @@ -127,13 +129,25 @@ be_visitor_interface_sh::visit_interface (be_interface *node) } // add a skeleton for our _is_a method os->indent (); - *os << "static void _is_a_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &_tao_enviroment);\n\n"; + *os << "static void _is_a_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &_tao_enviroment = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; // add a skeleton for our _non_existent method os->indent (); - *os << "static void _non_existent_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &_tao_enviroment);\n\n"; + *os << "static void _non_existent_skel (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &req," << be_nl + << "void *obj," << be_nl + << "void *context," << be_nl + << "CORBA::Environment &_tao_enviroment = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; // add a method that says whether we are involved in a multiple inheritance // or not @@ -153,17 +167,25 @@ be_visitor_interface_sh::visit_interface (be_interface *node) // add the dispatch method os->indent (); - *os << "virtual void _dispatch (CORBA::ServerRequest &_tao_req, " - << "void *_tao_context, CORBA::Environment &_tao_env);\n\n"; + *os << "virtual void _dispatch (" << be_idt << be_idt_nl + << "CORBA::ServerRequest &_tao_req," << be_nl + << "void *_tao_context," << be_nl + << "CORBA::Environment &_tao_env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; // Print out the _this() method. os->indent (); - *os << node->name () << " *_this (CORBA::Environment &_tao_environment);\n"; + *os << node->name () << " *_this (" << be_idt << be_idt_nl + << "CORBA::Environment &_tao_environment = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n"; + // the _interface_repository_id method os->indent (); - *os << "virtual const char* _interface_repository_id" - << " (void) const;\n"; - + *os << "virtual const char* _interface_repository_id (void) const;\n"; os->decr_indent (); *os << "};\n\n"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp index d42afcb6f13..78d03c9a8a4 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp @@ -114,7 +114,11 @@ be_visitor_interface_tie_sh::visit_interface (be_interface *node) << "void _is_owner (CORBA::Boolean b);" << be_nl << "// set the ownership" << be_nl << be_nl << "// overridden ServantBase operations" << be_nl - << "PortableServer::POA_ptr _default_POA (CORBA::Environment &env);\n"; + << "PortableServer::POA_ptr _default_POA (" << be_idt << be_idt_nl + << "CORBA::Environment &env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n"; if (node->traverse_inheritance_graph (be_visitor_interface_tie_sh::method_helper, os) == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp index 88a8970054f..d8e35f68bcd 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp @@ -64,8 +64,20 @@ be_visitor_operation_arglist::visit_operation (be_operation *node) // last argument - is always CORBA::Environment os->indent (); - *os << "CORBA::Environment &_tao_environment\n"; - os->decr_indent (); + *os << "CORBA::Environment &_tao_environment"; + + switch (this->ctx_->state ()) + { + case TAO_CodeGen::TAO_OPERATION_ARGLIST_CH: + case TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH: + case TAO_CodeGen::TAO_OPERATION_ARGLIST_SH: + *os << " = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl; + break; + default: + break; + } *os << " )"; switch (this->ctx_->state ()) { diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp index e9f3705704b..0ebb02d6143 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp @@ -138,8 +138,10 @@ be_visitor_operation_sh::visit_operation (be_operation *node) << "CORBA::ServerRequest &_tao_req, " << be_nl << "void *_tao_obj, " << be_nl << "void *_tao_context, " << be_nl - << "CORBA::Environment &_tao_env" - << be_uidt_nl << be_uidt << ");\n\n"; + << "CORBA::Environment &_tao_env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl + << ");" << be_uidt << "\n\n"; } return 0; diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp index 1bc9d75dcc2..006cbb8d25e 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp @@ -253,7 +253,9 @@ be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node) *os << "virtual void _downcast (" << be_idt << be_idt_nl << "void* target," << be_nl << "CORBA_Object *src," << be_nl - << "CORBA_Environment &env" << be_uidt_nl + << "CORBA::Environment &_env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; pt->accept (visitor); @@ -262,7 +264,7 @@ be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node) *os << "**, target);" << be_nl << "*tmp = "; pt->accept (visitor); - *os << "::_narrow (src, env);" << be_uidt_nl + *os << "::_narrow (src, _env);" << be_uidt_nl << "}\n" << be_nl; *os << "virtual CORBA_Object* _upcast (void *src) const" << be_nl @@ -274,7 +276,7 @@ be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node) << "return *tmp;" << be_uidt_nl << "}" << be_nl; } - *os << "};\n"; + *os << "};" << be_uidt_nl << "\n"; os->gen_endif (); diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp index 10a80a03edb..49718aca3e6 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp @@ -254,7 +254,9 @@ be_visitor_sequence_ch::gen_unbounded_obj_sequence (be_sequence *node) *os << "virtual void _downcast (" << be_idt << be_idt_nl << "void* target," << be_nl << "CORBA_Object *src," << be_nl - << "CORBA_Environment &env" << be_uidt_nl + << "CORBA_Environment &_env = " << be_idt_nl + << "CORBA::Environment::default_environment ()" + << be_uidt << be_uidt_nl << ")" << be_uidt_nl << "{" << be_idt_nl; pt->accept (visitor); @@ -263,7 +265,7 @@ be_visitor_sequence_ch::gen_unbounded_obj_sequence (be_sequence *node) *os << "**, target);" << be_nl << "*tmp = "; pt->accept (visitor); - *os << "::_narrow (src, env);" << be_uidt_nl + *os << "::_narrow (src, _env);" << be_uidt_nl << "}\n" << be_nl; *os << "virtual CORBA_Object* _upcast (void *src) const" << be_nl @@ -275,7 +277,7 @@ be_visitor_sequence_ch::gen_unbounded_obj_sequence (be_sequence *node) << "return *tmp;" << be_uidt_nl << "}" << be_nl; } - *os << "};\n"; + *os << "};" << be_uidt_nl << "\n"; os->gen_endif (); // endif macro |