{
paramOut(os, base + ".size", _size);
paramOut(os, base + ".maxsize", _maxsize);
+ paramOut(os, base + ".reserved", _reserved);
paramOut(os, base + ".packets", fifo.size());
int i = 0;
{
paramIn(cp, section, base + ".size", _size);
paramIn(cp, section, base + ".maxsize", _maxsize);
+ paramIn(cp, section, base + ".reserved", _reserved);
int fifosize;
paramIn(cp, section, base + ".packets", fifosize);
explicit PacketFifo(int max) : _maxsize(max), _size(0), _reserved(0) {}
virtual ~PacketFifo() {}
- int maxsize() const { return _maxsize; }
int packets() const { return fifo.size(); }
- int size() const { return _size + _reserved; }
- int avail() const { return maxsize() - size(); }
- bool empty() const { return size() == 0; }
- bool full() const { return size() >= maxsize(); }
+ int maxsize() const { return _maxsize; }
+ int size() const { return _size; }
+ int reserved() const { return _reserved; }
+ int avail() const { return _maxsize - _size - _reserved; }
+ bool empty() const { return size() <= 0; }
+ bool full() const { return avail() <= 0; }
int reserve(int len = 0)
{
{
fifo.clear();
_size = 0;
+ _reserved = 0;
}
/**