summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp85
1 files changed, 12 insertions, 73 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp
index ffeabdd4bb5..3632cdef765 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/marshal_cs.cpp
@@ -58,29 +58,18 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
*os << "strm";
}
- *os << ", TAO_ChunkInfo&";
- // If the valuetype has no fields, and no stateful inherit,
- // the chunking helper arg is unused.
- if (inh != 0 || node->data_members_count () > 0)
- {
- *os << "ci";
- }
-
*os << ") const" << be_nl
<< "{" << be_idt_nl;
if (inh)
{
- *os << "if (! ci.start_chunk (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
-
if (inh->opt_accessor ())
{
*os << "if (!this->";
this->class_name (inh, os);
- *os << "::_tao_marshal_state (strm, ci))" << be_idt_nl
+ *os << "::_tao_marshal_state (strm))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -90,7 +79,7 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
{
*os << "if (! this->_tao_marshal__"
<< inh->flat_name ()
- << " (strm, ci))" << be_idt_nl
+ << " (strm))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -101,32 +90,15 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
be_visitor_valuetype_field_cdr_decl field_out_cdr (&new_ctx);
field_out_cdr.visit_scope (node);
- if (node->data_members_count () > 0)
- {
- *os << "if (! ci.start_chunk (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
- *os << "CORBA::Boolean ret = " << be_idt << be_idt_nl;
+ *os << "return (" << be_idt << be_idt_nl;
// All we have to do is to visit the scope and generate code.
this->gen_fields (node,
*this->ctx_);
- *os << ";" << be_uidt << be_uidt_nl;
-
- *os << "if ( ! ret) " << be_idt_nl;
- *os << "return false; " << be_uidt_nl << be_nl;
- *os << "if (! ci.end_chunk (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
- }
-
- if (inh)
- {
- *os << "if (! ci.end_chunk (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
- }
-
- *os << "return true;" << be_uidt_nl;
- *os << "}" << be_nl << be_nl;
+ *os << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}" << be_nl << be_nl;
// Set the substate as generating code for the input operator.
this->ctx_->sub_state (TAO_CodeGen::TAO_CDR_INPUT);
@@ -144,29 +116,18 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
*os << "strm";
}
- *os << ", TAO_ChunkInfo&";
- // If the valuetype has no fields, and no stateful inherit,
- // the chunking helper arg is unused.
- if (inh != 0 || node->data_members_count () > 0)
- {
- *os << "ci";
- }
-
*os << ")" << be_nl
<< "{" << be_idt_nl;
if (inh)
{
- *os << "if (! ci.handle_chunking (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
-
if (inh->opt_accessor ())
{
*os << "if (!this->";
this->class_name (inh, os);
- *os << "::_tao_unmarshal_state (strm, ci))" << be_idt_nl
+ *os << "::_tao_unmarshal_state (strm))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -175,7 +136,7 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
{
*os << "if (! this->_tao_unmarshal__"
<< inh->flat_name ()
- << " (strm, ci))" << be_idt_nl
+ << " (strm))" << be_idt_nl
<< "{" << be_idt_nl
<< "return false;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -185,37 +146,15 @@ be_visitor_valuetype_marshal_cs::visit_valuetype (be_valuetype *node)
be_visitor_valuetype_field_cdr_decl field_in_cdr (&new_ctx);
field_in_cdr.visit_scope (node);
- if (node->data_members_count () > 0)
- {
- *os << "if (! ci.handle_chunking (strm))" << be_idt_nl;
- *os << "return false;" << be_uidt_nl << be_nl;
- *os << "CORBA::Boolean ret = " << be_idt << be_idt_nl;
+ *os << "return (" << be_idt_nl;
// All we have to do is to visit the scope and generate code.
this->gen_fields (node,
*this->ctx_);
- *os << ";" << be_uidt << be_uidt_nl;
-
- *os << "if ( ! ret) " << be_idt_nl;
- *os << "return false; " << be_uidt_nl << be_nl;
- *os << "if (this->require_truncation_)" << be_idt_nl;
- *os << "return ci.skip_chunks (strm);" << be_uidt_nl << be_nl;
- *os << "else" << be_idt_nl;
- *os << "return ci.handle_chunking (strm);" << be_uidt_nl << be_nl;
- }
- else
- *os << "return true;";
- *os << be_uidt_nl << "}" << be_nl << be_nl;
-
- *os << "void" << be_nl;
-
- this->class_name (node, os);
-
- *os << "::truncation_hook (void)" << be_nl
- << "{" << be_idt_nl
- << "this->require_truncation_ = true;" << be_uidt_nl
- << "}" << be_nl << be_nl;
+ *os << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}";
return 0;
}