NAME

ACE_Locked_Data_Block - A Data_Block with a concrete locking strategy.

SYNOPSIS

#include <ace/Message_Block_T.h>

template<class ACE_LOCK> class ACE_Locked_Data_Block : public ACE_Data_Block { public: ACE_Locked_Data_Block (void); 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 ); virtual ~ACE_Locked_Data_Block (void); virtual ACE_Data_Block *clone_nocopy ( ACE_Message_Block::Message_Flags mask = 0 ) const; private: ACE_LOCK lock_; inline ACE_UNIMPLEMENTED_FUNC ( ACE_Locked_Data_Block<ACE_LOCK> &operator= (const ACE_Locked_Data_Block<ACE_LOCK> &) ); };

DESCRIPTION

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.

Initialization and termination methods.

ACE_Locked_Data_Block (void);

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
    );

virtual ~ACE_Locked_Data_Block (void);

virtual ACE_Data_Block *clone_nocopy (
    ACE_Message_Block::Message_Flags mask = 0
    ) const;

Disallow these operations.

inline ACE_UNIMPLEMENTED_FUNC (
    ACE_Locked_Data_Block<ACE_LOCK> &operator= (const ACE_Locked_Data_Block<ACE_LOCK> &)
    );

AUTHOR

Doug Schmidt & Carlos O'Ryan

LIBRARY

ace