diff options
Diffstat (limited to 'ACE/TAO/tao/Queued_Data.inl')
-rw-r--r-- | ACE/TAO/tao/Queued_Data.inl | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/ACE/TAO/tao/Queued_Data.inl b/ACE/TAO/tao/Queued_Data.inl new file mode 100644 index 00000000000..1508377fc05 --- /dev/null +++ b/ACE/TAO/tao/Queued_Data.inl @@ -0,0 +1,137 @@ +// -*- C++ -*- +// +//$Id$ + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +/*static*/ +ACE_INLINE void +TAO_Queued_Data::replace_data_block (ACE_Message_Block &mb) +{ + size_t const newsize = + ACE_CDR::total_length (&mb, 0) + ACE_CDR::MAX_ALIGNMENT; + + ACE_Data_Block *db = + mb.data_block ()->clone_nocopy (); + + if (db->size (newsize) == -1) + return; + + ACE_Message_Block tmp (db); + ACE_CDR::mb_align (&tmp); + + tmp.copy (mb.rd_ptr (), mb.length()); + mb.data_block (tmp.data_block ()->duplicate ()); + + mb.rd_ptr (tmp.rd_ptr ()); + mb.wr_ptr (tmp.wr_ptr ()); + + // Remove the DONT_DELETE flags from mb + mb.clr_self_flags (ACE_Message_Block::DONT_DELETE); +} + +ACE_INLINE +TAO_Queued_Data::TAO_Queued_Data (ACE_Allocator *alloc) + : msg_block_ (0), + missing_data_ (0), + state_ (), + next_ (0), + allocator_ (alloc) +{ +} + +ACE_INLINE +TAO_Queued_Data::TAO_Queued_Data (ACE_Message_Block *mb, + ACE_Allocator *alloc) + : msg_block_ (mb), + missing_data_ (0), + state_ (), + next_ (0), + allocator_ (alloc) +{ +} + +ACE_INLINE +TAO_Queued_Data::TAO_Queued_Data (const TAO_Queued_Data &qd) + : msg_block_ (qd.msg_block_->duplicate ()), + missing_data_ (qd.missing_data_), + state_ (qd.state_), + next_ (0), + allocator_ (qd.allocator_) +{ +} + + +ACE_INLINE size_t +TAO_Queued_Data::missing_data (void) const +{ + return this->missing_data_; +} + +ACE_INLINE void +TAO_Queued_Data::missing_data (size_t data) +{ + this->missing_data_ = data; +} + +ACE_INLINE TAO_GIOP_Message_Version const & +TAO_Queued_Data::giop_version (void) const +{ + return this->state_.giop_version (); +} + +ACE_INLINE CORBA::Octet +TAO_Queued_Data::byte_order (void) const +{ + return this->state_.byte_order (); +} + +ACE_INLINE CORBA::Boolean +TAO_Queued_Data::more_fragments (void) const +{ + return this->state_.more_fragments (); +} + +ACE_INLINE GIOP::MsgType +TAO_Queued_Data::msg_type (void) const +{ + return this->state_.message_type (); +} + +ACE_INLINE TAO_Queued_Data * +TAO_Queued_Data::next (void) const +{ + return this->next_; +} + +ACE_INLINE void +TAO_Queued_Data::next (TAO_Queued_Data* qd) +{ + this->next_ = qd; +} + +ACE_INLINE ACE_Message_Block * +TAO_Queued_Data::msg_block (void) const +{ + return this->msg_block_; +} + +ACE_INLINE void +TAO_Queued_Data::msg_block (ACE_Message_Block *mb) +{ + this->msg_block_ = mb; +} + +ACE_INLINE void +TAO_Queued_Data::state (const TAO_GIOP_Message_State& state) +{ + this->state_ = state; +} + +ACE_INLINE const TAO_GIOP_Message_State& +TAO_Queued_Data::state (void) const +{ + return this->state_; +} + +TAO_END_VERSIONED_NAMESPACE_DECL |