00001
00002
00003
00004
00005
00006
00007
00008 #include "EntryExit.h"
00009
00010 ACE_INLINE
00011 OpenDDS::DCPS::TransportRetainedElement::TransportRetainedElement(
00012 const ACE_Message_Block* message,
00013 const RepoId& pubId,
00014 TransportRetainedElementAllocator* allocator,
00015 MessageBlockAllocator* mb_allocator,
00016 DataBlockAllocator* db_allocator
00017 ) : TransportQueueElement(1),
00018 msg_(0),
00019 publication_id_( pubId),
00020 allocator_( allocator),
00021 mb_allocator_( mb_allocator),
00022 db_allocator_( db_allocator)
00023 {
00024 if (message != 0) {
00025 msg_ = TransportQueueElement::clone_mb(message,
00026 this->mb_allocator_,
00027 this->db_allocator_);
00028 }
00029 }
00030
00031 ACE_INLINE
00032 OpenDDS::DCPS::TransportRetainedElement::TransportRetainedElement(
00033 const TransportRetainedElement& source
00034 ) : TransportQueueElement(1),
00035 msg_( ACE_Message_Block::duplicate( source.msg())),
00036 publication_id_( source.publication_id()),
00037 allocator_( source.allocator_),
00038 mb_allocator_( source.mb_allocator_),
00039 db_allocator_( source.db_allocator_)
00040 {
00041 DBG_ENTRY_LVL("TransportRetainedElement","TransportRetainedElement",6);
00042 }
00043
00044
00045 ACE_INLINE
00046 bool
00047 OpenDDS::DCPS::TransportRetainedElement::owned_by_transport ()
00048 {
00049 return true;
00050 }
00051