diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp | 147 |
1 files changed, 79 insertions, 68 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp index 23c63bc255d..feb90e31a0a 100644 --- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp @@ -19,21 +19,18 @@ // Modifications by Aniruddha Gokhale // ============================================================================ -#include "be.h" - +#include "be.h" #include "be_visitor_sequence.h" -ACE_RCSID(be_visitor_sequence, gen_bounded_obj_sequence_ci, "$Id$") +ACE_RCSID (be_visitor_sequence, + gen_bounded_obj_sequence_ci, + "$Id$") int be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) { TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - // Retrieve the base type since we may need to do some code - // generation for the base type. - bt = be_type::narrow_from_decl (node->base_type ()); + be_type *bt = be_type::narrow_from_decl (node->base_type ()); if (!bt) { @@ -105,14 +102,15 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) be_visitor_context ctx (*this->ctx_); ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); + be_visitor_sequence_base visitor (&ctx); + + *os << be_nl << "// TAO_IDL - Generated from " + << __FILE__ << ":" << __LINE__ << be_nl << be_nl; // Branching in either compile time template instantiation // or manual template instatiation. os->gen_ifdef_AHETI(); - os->gen_ifdef_macro (class_name); - os->indent (); // First generate the static methods since they are used by others. Since @@ -120,7 +118,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) // some compilers give lots of warnings. // allocbuf - *os << "ACE_INLINE "; bt->accept (visitor); + *os << "ACE_INLINE "; bt->accept (&visitor); *os << " **" << be_nl; *os << full_class_name << "::allocbuf (CORBA::ULong /* length */) " << "// Allocate storage for a sequence.." << be_nl @@ -129,7 +127,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) // The accept is here the first time used and if an // error occurs, it will occur here. Later no check // for errors will be done. - if (bt->accept (visitor) == -1) + if (bt->accept (&visitor) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_sequence_ci::" @@ -142,7 +140,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << be_nl << "ACE_NEW_RETURN (buf, "; - bt->accept (visitor); + bt->accept (&visitor); *os << "*[" << node->max_size () << "], 0);" << be_nl << be_nl @@ -152,17 +150,21 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "buf[i] = "; int is_valuetype = 0; - { - be_interface *bf = be_interface::narrow_from_decl (pt); - if (bf != 0) + be_interface *bf = be_interface::narrow_from_decl (pt); + + if (bf != 0) + { is_valuetype = bf->is_valuetype (); - else - { - be_interface_fwd *bff = be_interface_fwd::narrow_from_decl (pt); - if (bff != 0) + } + else + { + be_interface_fwd *bff = be_interface_fwd::narrow_from_decl (pt); + + if (bff != 0) + { is_valuetype = bff->is_valuetype (); - } - } + } + } if (is_valuetype) { @@ -170,7 +172,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) } else if (bt_is_defined) { - bt->accept (visitor); + bt->accept (&visitor); *os << "::_nil ();"; } @@ -188,7 +190,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) *os << "ACE_INLINE void" << be_nl << full_class_name << "::freebuf ("; - bt->accept (visitor); + bt->accept (&visitor); *os << " **buffer)" << be_nl << "{" << be_idt_nl @@ -206,14 +208,14 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) } else if (bt_is_defined) { - bt->accept (visitor); + bt->accept (&visitor); *os << "::_nil ())" << be_idt_nl << "{" << be_idt_nl << "CORBA::release (buffer[i]);" << be_nl << "buffer[i] = "; - bt->accept (visitor); + bt->accept (&visitor); *os << "::_nil ();" << be_uidt_nl; } @@ -247,7 +249,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << full_class_name << "::" << class_name << " (CORBA::ULong length," << be_idt_nl; - bt->accept (visitor); + bt->accept (&visitor); *os <<"* *value," << be_nl << "CORBA::Boolean release)" << be_uidt_nl @@ -268,15 +270,15 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "if (rhs.buffer_ != 0)" << be_nl << "{" << be_idt_nl; - bt->accept(visitor); + bt->accept (&visitor); *os <<" **tmp1 = allocbuf (" << node->max_size () << ");" << be_nl; - bt->accept(visitor); + bt->accept(&visitor); *os <<" ** const tmp2 = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << "** ACE_CAST_CONST, rhs.buffer_);" << be_nl << "for (CORBA::ULong i = 0; i < rhs.length_; i++)" << be_idt_nl @@ -291,16 +293,17 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) else { *os << "tmp1[i] = "; - if (bt_is_defined) - { - bt->accept (visitor); - *os << "::_duplicate (tmp2[i]);"; - } - else - { - *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);"; - } + if (bt_is_defined) + { + bt->accept (&visitor); + + *os << "::_duplicate (tmp2[i]);"; + } + else + { + *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);"; + } } *os << be_uidt_nl @@ -326,11 +329,11 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "if (this->release_ && this->buffer_ != 0)" << be_nl << "{" << be_idt_nl; - bt->accept (visitor); + bt->accept (&visitor); *os <<" **tmp = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << " **, this->buffer_);" << be_nl << be_nl @@ -348,7 +351,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) *os << "CORBA::release (tmp[i]);" << be_nl << "tmp[i] = "; - bt->accept (visitor); + bt->accept (&visitor); *os << "::_nil ();"; } @@ -369,19 +372,19 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "TAO_Bounded_Base_Sequence::operator= (rhs);" << be_nl << be_nl; - bt->accept(visitor); + bt->accept (&visitor); *os <<" **tmp1 = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << " **, this->buffer_);" << be_nl; - bt->accept(visitor); + bt->accept (&visitor); *os <<" ** const tmp2 = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << " ** ACE_CAST_CONST, rhs.buffer_);" << be_nl << "for (CORBA::ULong i=0; i < rhs.length_; ++i)" << be_idt_nl @@ -396,16 +399,17 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) else { *os << "tmp1[i] = "; - if (bt_is_defined) - { - bt->accept (visitor); - *os << "::_duplicate (tmp2[i]);"; - } - else - { - *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);"; - } + if (bt_is_defined) + { + bt->accept (&visitor); + + *os << "::_duplicate (tmp2[i]);"; + } + else + { + *os << "tao_" << pt->flat_name () << "_duplicate (tmp2[i]);"; + } } *os << be_uidt_nl @@ -430,9 +434,13 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) else { if (is_valuetype) - *os << "TAO_Valuetype_Manager<"; + { + *os << "TAO_Valuetype_Manager<"; + } else - *os << "ACE_INLINE TAO_Object_Manager<"; + { + *os << "ACE_INLINE TAO_Object_Manager<"; + } } *os << bt->name () << "," @@ -442,11 +450,11 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "{" << be_idt_nl << "ACE_ASSERT (index < this->maximum_);" << be_nl; - bt->accept(visitor); + bt->accept (&visitor); *os <<" **const tmp = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << " ** ACE_CAST_CONST, this->buffer_);" << be_nl; @@ -457,9 +465,13 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) else { if (is_valuetype) + { *os << "return TAO_Valuetype_Manager<"; + } else - *os << "return TAO_Object_Manager<"; + { + *os << "return TAO_Object_Manager<"; + } } *os << bt->name () << "," @@ -471,14 +483,14 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) // get_buffer *os << "ACE_INLINE "; - bt->accept(visitor); + bt->accept (&visitor); *os << " **" << be_nl; *os << full_class_name << "::get_buffer (CORBA::Boolean orphan)" << be_nl << "{" << be_idt_nl; - bt->accept(visitor); + bt->accept (&visitor); *os << " **result = 0;" << be_nl << "if (orphan == 0)" << be_nl @@ -495,7 +507,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "{" << be_idt_nl << "result = ACE_reinterpret_cast ("; - bt->accept (visitor); + bt->accept (&visitor); *os << "**, this->buffer_);" << be_uidt_nl << "}" << be_uidt_nl @@ -509,7 +521,7 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) << "result = ACE_reinterpret_cast("; - bt->accept (visitor); + bt->accept (&visitor); *os << "**,this->buffer_);" << be_nl << "this->maximum_ = 0;" << be_nl << "this->length_ = 0;" << be_nl @@ -524,14 +536,14 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) // get_buffer. *os << "ACE_INLINE const "; - bt->accept (visitor); + bt->accept (&visitor); *os << "* *" << be_nl << full_class_name << "::get_buffer (void) const" << be_nl << "{" << be_idt_nl << "return ACE_reinterpret_cast(const "; - bt->accept (visitor); + bt->accept (&visitor); *os << " ** ACE_CAST_CONST, this->buffer_);" << be_uidt_nl << "}" << be_nl @@ -542,6 +554,5 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node) // Generate #endif for AHETI. os->gen_endif_AHETI(); - delete visitor; return 0; } |