WvStreams
include
wvmagiccircle.h
1
/* -*- Mode: C++ -*-
2
* Worldvisions Weaver Software:
3
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
4
*
5
* A circular queue that can be accessed across fork().
6
*/
7
#ifndef __WVMAGICCIRCLE_H
8
#define __WVMAGICCIRCLE_H
9
10
#include "wvshmzone.h"
11
12
14
class
WvMagicCircle
:
public
WvErrorBase
15
{
16
public
:
22
WvMagicCircle
(
size_t
size);
23
~
WvMagicCircle
();
24
25
protected
:
26
WvShmZone
shm;
27
28
volatile
int
&head, &tail;
29
int
size;
30
char
*circle;
31
32
public
:
33
size_t
used();
34
size_t
left()
35
{
return
size - used() - 1; }
36
size_t
put(
const
void
*data,
size_t
len);
37
size_t
get(
void
*data,
size_t
len);
38
size_t
skip(
size_t
len);
39
40
public
:
41
const
char
*wstype()
const
{
return
"WvMagicCircle"
; }
42
};
43
44
45
#endif // __WVMAGICCIRCLE_H
WvShmZone
Represents a shared-memory zone via mmap().
Definition:
wvshmzone.h:20
WvMagicCircle
A circular queue that can be accessed across fork().
Definition:
wvmagiccircle.h:14
WvErrorBase
A class for managing error numbers and strings.
Definition:
wverror.h:23
WvMagicCircle::WvMagicCircle
WvMagicCircle(size_t size)
Creates a shared memory circular queue.
Definition:
wvmagiccircle.cc:11
Generated by
1.8.17