The DejaVU Framework --
hush 3.1
-
[up]
[top] -
index
make
include
source
logic
grammar
scripts
html
configure
mx
slides
talks
scenes
reports
projects
<body bgcolor="#FFFFFF" text="#000000">
include
include
include
using std::string;
using std::vector;
using std::ostream;
//
// class RingBuffer
//
// Provides a simple debug buffer. The client specifies the number
// of entries in the constructor and adds messages with the addEntry()
// method. Once the number of entries exceeds the number allowed, new
// entries overwrite the oldest entries in the buffer.
//
// The buffer also provides the option to print entries as they
// are added to the buffer. The client can specify an output stream
// in the constructor, and can reset it with the setOutput() method.
//
// Finally, the buffer supports streaming to an output stream.
//
<h4 align=right text=red> RingBuffer</h4><hr>
class RingBuffer
{
public:
//
// Constructs a ring buffer with space for numEntries.
// Entries are written to *ostr as they are queued.
//
RingBuffer(int numEntries = kDefaultNumEntries, ostream* ostr = NULL);
~RingBuffer();
//
// Adds the string to the ring buffer, possibly overwriting the
// oldest string in the buffer (if the buffer is full).
//
void addEntry(const string& entry);
//
// Streams the buffer entries, separated by newlines, to ostr.
//
friend ostream& operator<<(ostream& ostr, const RingBuffer& rb);
//
// Sets the output stream to which entries are streamed as they are added.
// Returns the old output stream.
//
ostream* setOutput(ostream* newOstr);
protected:
vector mEntries;
ostream* mOstr;
int mNumEntries, mNext;
bool mWrapped;
static const int kDefaultNumEntries = 500;
private:
// Prevent assignment and pass-by-value
RingBuffer(const RingBuffer& src);
RingBuffer& operator=(const RingBuffer& rhs);
};<hr>
<hr>
<style type="text/css">
div.mainnavigate {
margin: 20px 2px;
/*
background-color: #ffffff;
*/
border: 1px solid black;
}
</style>
<div class=xnavigate>
[]
<black>readme</black>
course(s)
preface
<black>I</black>
1
2
<black>II</black>
3
4
<black>III</black>
5
6
7
<black>IV</black>
8
9
10
<black>V</black>
11
12
afterthought(s)
<black>appendix</black>
reference(s)
example(s)
<black>resource(s)</black>
_
</div>
<hr>
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.
</div>
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2780434-1";
urchinTracker();
</script>
</body>
</html>
<hr>
<hr>
<table cellpadding=10>
<tr>
<td>
<address>
Hush Online Technology
</address>
hush@cs.vu.nl
<br>10/19/08
</td><td>
</td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
<td>
</td>
</tr>
</table>