summaryrefslogtreecommitdiff
path: root/src/dev/pktfifo.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/pktfifo.hh')
-rw-r--r--src/dev/pktfifo.hh14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/dev/pktfifo.hh b/src/dev/pktfifo.hh
index 95d46fc76..ea5803026 100644
--- a/src/dev/pktfifo.hh
+++ b/src/dev/pktfifo.hh
@@ -80,6 +80,7 @@ class PacketFifo
typedef std::list<PacketFifoEntry> fifo_list;
typedef fifo_list::iterator iterator;
+ typedef fifo_list::const_iterator const_iterator;
protected:
std::list<PacketFifoEntry> fifo;
@@ -112,6 +113,9 @@ class PacketFifo
iterator begin() { return fifo.begin(); }
iterator end() { return fifo.end(); }
+ const_iterator begin() const { return fifo.begin(); }
+ const_iterator end() const { return fifo.end(); }
+
EthPacketPtr front() { return fifo.begin()->packet; }
bool push(EthPacketPtr ptr)
@@ -171,25 +175,25 @@ class PacketFifo
bool copyout(void *dest, unsigned offset, unsigned len);
- int countPacketsBefore(iterator i)
+ int countPacketsBefore(const_iterator i) const
{
if (i == fifo.end())
return 0;
return i->number - fifo.begin()->number;
}
- int countPacketsAfter(iterator i)
+ int countPacketsAfter(const_iterator i) const
{
- iterator end = fifo.end();
+ auto end = fifo.end();
if (i == end)
return 0;
return (--end)->number - i->number;
}
- void check()
+ void check() const
{
unsigned total = 0;
- for (iterator i = begin(); i != end(); ++i)
+ for (auto i = begin(); i != end(); ++i)
total += i->packet->length + i->slack;
if (total != _size)