#include <Message_Block_T.h>
Inheritance diagram for ACE_Locked_Data_Block< ACE_LOCK >:
Public Member Functions | |
ACE_Locked_Data_Block (void) | |
Default "do-nothing" constructor. | |
ACE_Locked_Data_Block (size_t size, ACE_Message_Block::ACE_Message_Type msg_type, const char *msg_data, ACE_Allocator *allocator_strategy, ACE_Message_Block::Message_Flags flags, ACE_Allocator *data_block_allocator) | |
Initialize. | |
virtual | ~ACE_Locked_Data_Block (void) |
Delete all the resources held in the message. | |
virtual ACE_Data_Block * | clone_nocopy (ACE_Message_Block::Message_Flags mask=0) const |
Private Member Functions | |
ACE_Locked_Data_Block< ACE_LOCK > & | operator= (const ACE_Locked_Data_Block< ACE_LOCK > &) |
ACE_Locked_Data_Block (const ACE_Locked_Data_Block< ACE_LOCK > &) | |
Private Attributes | |
ACE_LOCK | lock_ |
The lock. |
Data_Blocks can be parametric on the kind of lock they use; in many cases the lifetime of the lock is tied to the lifetime of the Data_Block itself. But since Data_Blocks are reference counted it is hard for users to control the lock lifetime. This class is parametric over the kind of lock used.
Definition at line 38 of file Message_Block_T.h.
|
Default "do-nothing" constructor.
Definition at line 8 of file Message_Block_T.inl.
00009 { 00010 this->locking_strategy_ = &this->lock_; 00011 } |
|
Initialize.
Definition at line 15 of file Message_Block_T.inl. References ACE_Message_Block::ACE_Message_Type, and ACE_Message_Block::Message_Flags.
00021 : ACE_Data_Block (size, 00022 msg_type, 00023 msg_data, 00024 allocator_strategy, 00025 &lock_, 00026 flags, 00027 data_block_allocator) 00028 { 00029 } |
|
Delete all the resources held in the message.
Definition at line 17 of file Message_Block_T.cpp.
00018 { 00019 } |
|
|
|
Return an exact "deep copy" of the message, the dynamic type is ACE_Locked_Data_Block<> See the documentation in Message_Block.h for details. Reimplemented from ACE_Data_Block. Definition at line 22 of file Message_Block_T.cpp. References ACE_NEW_MALLOC_RETURN, ACE_TRACE, ACE_Data_Block::allocator_strategy(), ACE_Data_Block::clr_flags(), ACE_Data_Block::data_block_allocator(), ACE_Data_Block::flags(), ACE_Message_Block::Message_Flags, ACE_Data_Block::msg_type(), and ACE_Data_Block::size().
00023 { 00024 ACE_TRACE ("ACE_Locked_Data_Block::clone_nocopy"); 00025 00026 // You always want to clear this one to prevent memory leaks but you 00027 // might add some others later. 00028 const ACE_Message_Block::Message_Flags always_clear = 00029 ACE_Message_Block::DONT_DELETE; 00030 00031 ACE_Locked_Data_Block<ACE_LOCK> *nb = 0; 00032 00033 ACE_NEW_MALLOC_RETURN (nb, 00034 static_cast<ACE_Locked_Data_Block<ACE_LOCK>*> ( 00035 this->data_block_allocator ()->malloc (sizeof (ACE_Locked_Data_Block<ACE_LOCK>))), 00036 ACE_Locked_Data_Block<ACE_LOCK> (this->size (), 00037 this->msg_type (), 00038 0, 00039 this->allocator_strategy (), 00040 this->flags (), 00041 this->data_block_allocator ()), 00042 0); 00043 00044 // Set new flags minus the mask... 00045 nb->clr_flags (mask | always_clear); 00046 return nb; 00047 } |
|
|
|
The lock.
Definition at line 65 of file Message_Block_T.h. |