37 auto packet = check_and_cast<Packet *>(
object);
39 b length = packet->getDataLength();
40 packet->addRegionTagsWhereAbsent<ResidenceTimeTag>(offset, length);
41 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
42 tag->setStartTime(simTime());
46 auto packet = check_and_cast<Packet *>(
object);
48 b length = packet->getDataLength();
49 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
50 tag->setEndTime(simTime());
53 packet->removeRegionTagsWherePresent<ResidenceTimeTag>(offset, length);
56 auto physicalSignal = check_and_cast<cPacket *>(
object);
57 auto packet = check_and_cast<Packet *>(physicalSignal->getEncapsulatedPacket());
59 b length = packet->getDataLength();
61 packet->addRegionTagsWhereAbsent<ResidenceTimeTag>(offset, length);
62 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
63 tag->setStartTime(simTime());
67 packet->addRegionTagsWhereAbsent<ResidenceTimeTag>(offset, length);
68 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
69 tag->setStartTime(simTime());
73 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
74 tag->setEndTime(simTime());
77 packet->removeRegionTagsWherePresent<ResidenceTimeTag>(offset, length);
80 packet->mapAllRegionTagsForUpdate<ResidenceTimeTag>(offset, length, [&] (
b o,
b l,
const Ptr<ResidenceTimeTag>& tag) {
81 tag->setEndTime(simTime());
84 packet->removeRegionTagsWherePresent<ResidenceTimeTag>(offset, length);
87 throw cRuntimeError(
"Unknown signal");