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
using std::queue;
template
<h4 align=right text=red> PacketBuffer</h4><hr>
class PacketBuffer
{
public:
//
// If maxSize is non-positive, the size is unlimited.
// Otherwise only maxSize packets are allowed in
// the buffer at any one time.
//
PacketBuffer(int maxSize = -1);
//
// Stores the packet in the buffer.
// Throws overflow_error is the buffer is full.
//
void bufferPacket(const T& packet);
//
// Returns the next packet. Throws out_of_range
// if the buffer is empty.
//
T getNextPacket() throw (std::out_of_range);
protected:
queue mPackets;
int mMaxSize;
private:
// prevent assignment and pass-by-value
PacketBuffer(const PacketBuffer& src);
PacketBuffer& operator=(const PacketBuffer& rhs);
};<hr>
template
PacketBuffer::PacketBuffer(int maxSize)
{
mMaxSize = maxSize;
}
template
void PacketBuffer::bufferPacket(const T& packet)
{
if (mMaxSize > 0 && mPackets.size() == static_cast(mMaxSize)) {
// No more space. Just drop the packet.
return;
}
mPackets.push(packet);
}
template
T PacketBuffer::getNextPacket() throw (std::out_of_range)
{
if (mPackets.empty()) {
throw (std::out_of_range("Buffer is empty"));
}
// retrieve the head element
T temp = mPackets.front();
// pop the head element
mPackets.pop();
// return the head element
return (temp);
}
<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>