Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Threads Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

RWTPCValBufferBaseDecorated<Type,Decorator>

Module:  Threads   Package:  Interthread Communication


RWTPCValBufferBaseDecorated<Type,Decorator> (protected) RWTPCValBufferBase<Decorator>

Local Index

Members

Header File

#include <rw/itc/RWTPCValBufferBaseDecorated.h> 

Description

RWTPCValBufferBaseDecorated<Type,Decorator> is the base class for the family of classes that provide buffered producer-consumer synchronization semantics for exchanging decorated values between cooperating threads.

In the producer-consumer synchronization model, reader threads (consumers) are blocked while a buffer is empty, and writer threads (producers) are blocked while a buffer is full. A buffer is considered full when the number of unread entries equals or exceeds some user-specified maximum capacity.

The write operations provided by this class and its subclasses bind additional data items to each value prior to storing that value in an internal buffer. These additional data items are referred to as decorations, and are generally used to control the insertion or extraction process. Some examples of decorations include guard functors, instances, and priority values. The template parameter Decorator identifies the class that is used to encapsulate both the value and its decorations as a single object for storage in the internal buffer. The decorator classes used by subclasses to instantiate this class are intended for the Threads Module's internal use and are not documented as part of the public interface.

Public Destructor

virtual
~RWTPCValBufferBaseDecorated();

Inherited Functions

The following functions are inherited from the protected base class instantiation, RWTPCValBufferBase<Decorator>. They are access-adjusted to make them public in this class.

Public Member Functions

Type 
peek();
RWWaitStatus
peek(Type& result,unsigned long milliseconds);
Type
read();
RWWaitStatus
read(Type& result, unsigned long milliseconds);
bool
tryPeek(Type& result);
bool
tryRead(Type& result);
bool 
tryWrite(const Type& value);
void 
write(const Type& value);
RWWaitStatus 
write(const Type& value, unsigned long milliseconds);

See Also

RWTPCValBufferBase<Type>,RWTPCValBufferBaseGuarded<Type,GuardDecorator>, RWTPCValBufferBasePrioritized<Type,PriorityDecorator>



Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.