|
Pipe
Pipe encapsulates a variety of important, but little used miscellaneous classes.
The following general purpose pipes and types are available;
Pipes:
- Block - Fixed length FIFO/Circular buffer, fixed size read/write
- Pipe - Variable length FIFO/Circular buffer, variable size read/write, content bits aligned in fixed size elements
- Window - Variable length FIFO/Circular buffer, fixed size read/write, capability to read and write in the middle
- Stack - Variable length LIFO/Stack, fixed size read/write
Types:
Each pipe is available in each type.
A VByteBucket is provided. This is very much like a simplified combination of VString, VContainer and VArchive. It encapsulates a block of memory, and can be saved directly to disk, as well as serialised. It's content size is variable but mainly only to satisfy the needs of data sources which hand off a large data set in dribs and drabs. In general ByteBucket is a container for arbitary blocks of binary data. This class is overloaded in the HTTP header group for the purpose of carrying MIME data.
VDiskStore implements a non-persistent disk cache. It is primarily intended for use in applications that require storage space for information, when it is desirable but not essential, to retrieve that information. A typical example of this situation is session information on a web server. The information has to go somewhere, and perhaps the user whose information it is may come back and use it again, or perhaps they won't. This class deals with generating random unique identifiers for access to the information, and also manages automatic, periodic disposal of stale data. Data is stored in a dedicated folder on disk. A function to store, takes the binary data, and returns a token for the data. A function to retrieve, takes the token, and might return data.
|