summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
index 843711ebdb3..3a04f825b06 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
@@ -174,9 +174,9 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
{
this->begin_public ();
}
-
+
*os << be_nl;
-
+
// Default constructor.
if (! node->is_nested ())
{
@@ -184,19 +184,19 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
}
*os << node->local_name () << " (void);";
-
+
// Initializing constructor.
if (node->has_member ())
{
*os << be_nl;
-
+
if (! node->is_nested ())
{
*os << "OBV_";
}
-
+
*os << node->local_name () << " (" << be_idt << be_idt;
-
+
unsigned long index = 0;
this->gen_obv_init_constructor_args (node, index);
@@ -221,16 +221,20 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
*os << "virtual ::CORBA::Boolean" << be_nl
<< "_tao_marshal__" << node->flat_name ()
- << " (TAO_OutputCDR &) const;" << be_nl << be_nl;
+ << " (TAO_OutputCDR &, TAO_ChunkInfo &) const;" << be_nl << be_nl;
*os << "virtual ::CORBA::Boolean" << be_nl
<< "_tao_unmarshal__" << node->flat_name ()
- << " (TAO_InputCDR &);" << be_nl << be_nl;
+ << " (TAO_InputCDR &, TAO_ChunkInfo &);" << be_nl << be_nl;
*os << "::CORBA::Boolean "
- << "_tao_marshal_state (TAO_OutputCDR &) const;" << be_nl
+ << "_tao_marshal_state (TAO_OutputCDR &, TAO_ChunkInfo &) const;"
+ << be_nl
<< "::CORBA::Boolean "
- << "_tao_unmarshal_state (TAO_InputCDR &);"
+ << "_tao_unmarshal_state (TAO_InputCDR &, TAO_ChunkInfo &);"
+ << be_nl
+ << "virtual void "
+ << "truncation_hook (void);"
<< be_uidt_nl << be_nl;
*os << "private:" << be_idt;
@@ -238,8 +242,9 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
this->gen_pd (node);
}
- *os << be_uidt_nl;
- *os << "};";
+ *os << be_nl
+ << "CORBA::Boolean require_truncation_;" << be_uidt_nl
+ << "};";
os->gen_endif ();
}
@@ -287,13 +292,13 @@ void
be_visitor_valuetype_obv_ch::begin_public (void)
{
AST_Decl::NodeType nt = this->ctx_->node ()->node_type ();
-
+
// These types are skipped in the OBV class.
if (nt == AST_Decl::NT_attr || nt == AST_Decl::NT_op)
{
return;
}
-
+
TAO_OutStream *os = this->ctx_->stream ();
*os << be_uidt_nl << be_nl
<< "public:" << be_idt;