Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

RWTPCValBufferBaseDecorated<Type,Decorator>


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

Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Member Functions

Package

Interthread Communication

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 internal use of the library, and are not documented as part of the public interface.

Public Destructor

virtual
~RWTPCValBufferBaseDecorated(void);

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.

RWTPCValBufferBase<Decorator>::setCapacity;
RWTPCValBufferBase<Decorator>::getCapacity;
RWTPCValBufferBase<Decorator>::open;
RWTPCValBufferBase<Decorator>::isOpen;
RWTPCValBufferBase<Decorator>::close;
RWTPCValBufferBase<Decorator>::canRead;
RWTPCValBufferBase<Decorator>::canWrite;
RWTPCValBufferBase<Decorator>::entries;
RWTPCValBufferBase<Decorator>::flush;
RWTPCValBufferBase<Decorator>::getEmptyCallback;
RWTPCValBufferBase<Decorator>::setEmptyCallback;
RWTPCValBufferBase<Decorator>::getFullCallback;
RWTPCValBufferBase<Decorator>::setFullCallback;
RWTPCValBufferBase<Decorator>::getOpenCallback;
RWTPCValBufferBase<Decorator>::setOpenCallback;
RWTPCValBufferBase<Decorator>::getCloseCallback;
RWTPCValBufferBase<Decorator>::setCloseCallback;

Public Member Functions

Type 
peek(void);
RWWaitStatus
peek(Type& result,unsigned long milliseconds);
Type
read(void);
RWWaitStatus
read(Type& result, unsigned long milliseconds);
RWBoolean
tryPeek(Type& result);
RWBoolean
tryRead(Type& result);
RWBoolean 
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 DocumentContentsIndexNext file

©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.