summaryrefslogtreecommitdiff
path: root/TAO/tao/GIOP_Message_Lite.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/GIOP_Message_Lite.i')
-rw-r--r--TAO/tao/GIOP_Message_Lite.i29
1 files changed, 26 insertions, 3 deletions
diff --git a/TAO/tao/GIOP_Message_Lite.i b/TAO/tao/GIOP_Message_Lite.i
index 7fbff4b3806..e64e37395cd 100644
--- a/TAO/tao/GIOP_Message_Lite.i
+++ b/TAO/tao/GIOP_Message_Lite.i
@@ -2,17 +2,38 @@
ACE_INLINE
+TAO_GIOP_Message_Lite::TAO_GIOP_Message_Lite (TAO_ORB_Core *orb_core)
+ :cdr_buffer_alloc_ (orb_core->resource_factory ()->output_cdr_buffer_allocator ()),
+ cdr_dblock_alloc_ (orb_core->resource_factory ()->output_cdr_dblock_allocator ())
+{
+#if defined (ACE_HAS_PURIFY)
+ (void) ACE_OS::memset (this->repbuf_,
+ '\0',
+ sizeof this->repbuf_);
+#endif /* ACE_HAS_PURIFY */
+ ACE_NEW (this->output_,
+ TAO_OutputCDR (this->repbuf_,
+ sizeof this->repbuf_,
+ TAO_ENCAP_BYTE_ORDER,
+ this->cdr_buffer_alloc_,
+ this->cdr_dblock_alloc_,
+ orb_core->orb_params ()->cdr_memcpy_tradeoff (),
+ orb_core->to_iso8859 (),
+ orb_core->to_unicode ()));
+}
+
+ACE_INLINE
TAO_GIOP_Message_Lite::~TAO_GIOP_Message_Lite (void)
{
- // Explicitly call the destructor of the output CDR first. They need
+ // Explicitly call the destructor of the output CDR first. They need
// the allocators during destruction.
delete this->output_;
-
+
// Then call the destructor of our allocators
if (this->cdr_dblock_alloc_ != 0)
this->cdr_dblock_alloc_->remove ();
// delete this->cdr_dblock_alloc_;
-
+
if (this->cdr_buffer_alloc_ != 0)
this->cdr_buffer_alloc_->remove ();
// delete this->cdr_buffer_alloc_;
@@ -41,3 +62,5 @@ TAO_GIOP_Message_Lite::parse_header (TAO_GIOP_Message_State *state)
return 0;
}
+
+