OMNET++中peekAtFront的作用是什么
What is the function of peekAtFront in OMNET++
我在 OMNET++ 中找到了以下代码。
void Mac::sendDataPacket()
{
nbTxDataPackets++;
if (currentTxFrame == nullptr)
popTxQueue();
auto packet = currentTxFrame->dup();
const auto& hdr = packet->peekAtFront<MacHeaderBase>();
lastDataPktDestAddr = hdr->getDestAddr();
attachSignal(packet, simTime());
sendDown(packet);
}
谁能告诉我下面命令的作用是什么?
const auto& hdr = packet->peekAtFront<MacHeaderBase>();
lastDataPktDestAddr = hdr->getDestAddr();
谢谢
INET中的Packet
是一种数据结构,表示一个真实的数据包(如UDP数据报、IP数据包、以太网帧等)。 Packet
的实例内部可能包含其他结构。要在 Packet
开头获取数据,可以使用函数 popAtFront()
。它从 Packet
的实例中删除该数据。但是,有时需要检查 Packet 开头的结构而不删除它。在这种情况下,可以使用 peekAtFront()
。所以行:
packet->peekAtFront<MacHeaderBase>();
returns packet
开头的第一个数据结构 - 无需删除它。然后将结构转换为 MacHeaderBase
.
总结:该行允许检查 packet
是否包含 MAC 帧。
我在 OMNET++ 中找到了以下代码。
void Mac::sendDataPacket()
{
nbTxDataPackets++;
if (currentTxFrame == nullptr)
popTxQueue();
auto packet = currentTxFrame->dup();
const auto& hdr = packet->peekAtFront<MacHeaderBase>();
lastDataPktDestAddr = hdr->getDestAddr();
attachSignal(packet, simTime());
sendDown(packet);
}
谁能告诉我下面命令的作用是什么?
const auto& hdr = packet->peekAtFront<MacHeaderBase>();
lastDataPktDestAddr = hdr->getDestAddr();
谢谢
Packet
是一种数据结构,表示一个真实的数据包(如UDP数据报、IP数据包、以太网帧等)。 Packet
的实例内部可能包含其他结构。要在 Packet
开头获取数据,可以使用函数 popAtFront()
。它从 Packet
的实例中删除该数据。但是,有时需要检查 Packet 开头的结构而不删除它。在这种情况下,可以使用 peekAtFront()
。所以行:
packet->peekAtFront<MacHeaderBase>();
returns packet
开头的第一个数据结构 - 无需删除它。然后将结构转换为 MacHeaderBase
.
总结:该行允许检查 packet
是否包含 MAC 帧。