typedef std::list<PacketFifoEntry> fifo_list;
typedef fifo_list::iterator iterator;
+ typedef fifo_list::const_iterator const_iterator;
protected:
std::list<PacketFifoEntry> fifo;
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)
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)
}
void
-Device::serializeOld(CheckpointOut &cp)
+Device::serialize(CheckpointOut &cp) const
{
int count;
paramOut(cp, reg + ".rxPacketExists", rxPacketExists);
if (rxPacketExists) {
int rxPacket = 0;
- PacketFifo::iterator i = rxFifo.begin();
+ auto i = rxFifo.begin();
while (i != vnic->rxIndex) {
assert(i != rxFifo.end());
++i;
SERIALIZE_SCALAR(rxDirtyCount);
SERIALIZE_SCALAR(rxMappedCount);
- VirtualList::iterator i, end;
+ VirtualList::const_iterator i, end;
for (count = 0, i = rxList.begin(), end = rxList.end(); i != end; ++i)
paramOut(cp, csprintf("rxList%d", count++), *i);
int rxListSize = count;