80,81c80,82
< MessageBufferNode thisNode(arrival_time, m_msg_counter, message);
< m_message_queue.push_back(thisNode);
---
> Message* msg_ptr = message.get();
> msg_ptr->setLastEnqueueTime(arrival_time);
> m_message_queue.push_back(message);
95c96
< greater<MessageBufferNode>());
---
> greater<MsgPtr>());
102,103c103
< MessageBufferNode node = peekNode();
< Message* msg_ptr = node.m_msgptr.get();
---
> Message* msg_ptr = m_message_queue.front().get();
108,115d107
< MessageBufferNode
< WireBuffer::peekNode()
< {
< assert(isReady());
< MessageBufferNode req = m_message_queue.front();
< return req;
< }
<
124,126c116,117
< MessageBufferNode node = m_message_queue.front();
< pop_heap(m_message_queue.begin(), m_message_queue.end(),
< greater<MessageBufferNode>());
---
> MsgPtr node = m_message_queue.front();
> pop_heap(m_message_queue.begin(), m_message_queue.end(), greater<MsgPtr>());
128c119
< node.m_time = g_system_ptr->curCycle() + Cycles(1);
---
> node->setLastEnqueueTime(g_system_ptr->curCycle() + Cycles(1));
131c122
< greater<MessageBufferNode>());
---
> greater<MsgPtr>());
133c124
< scheduleEventAbsolute(g_system_ptr->clockPeriod() * node.m_time);
---
> scheduleEventAbsolute(g_system_ptr->curCycle() + Cycles(1));
140c131,132
< (m_message_queue.front().m_time <= g_system_ptr->curCycle()));
---
> (m_message_queue.front()->getLastEnqueueTime() <=
> g_system_ptr->curCycle()));
158d149
<