INET Framework for OMNeT++/OMNEST
inet::physicallayer::Ieee80211ErpOfdmPhyHeaderSerializer Class Reference

Converts between Ieee80211ErpOfdmPhyHeader and binary network byte order IEEE 802.11 ERP OFDM PHY header. More...

#include <Ieee80211PhyHeaderSerializer.h>

Inheritance diagram for inet::physicallayer::Ieee80211ErpOfdmPhyHeaderSerializer:
inet::FieldsChunkSerializer inet::ChunkSerializer

Public Member Functions

 Ieee80211ErpOfdmPhyHeaderSerializer ()
 
- Public Member Functions inherited from inet::FieldsChunkSerializer
virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk, b offset, b length) const override
 Serializes a chunk into a stream by writing the bytes representing the chunk at the end of the stream. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream, const std::type_info &typeInfo) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 

Protected Member Functions

virtual void serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk) const override
 ERP OFDM. More...
 
virtual const Ptr< Chunkdeserialize (MemoryInputStream &stream) const override
 Deserializes a chunk from a stream by reading the bytes at the current position of the stream. More...
 

Additional Inherited Members

- Static Public Attributes inherited from inet::ChunkSerializer
static b totalSerializedLength = b(0)
 
static b totalDeserializedLength = b(0)
 

Detailed Description

Converts between Ieee80211ErpOfdmPhyHeader and binary network byte order IEEE 802.11 ERP OFDM PHY header.

Constructor & Destructor Documentation

◆ Ieee80211ErpOfdmPhyHeaderSerializer()

inet::physicallayer::Ieee80211ErpOfdmPhyHeaderSerializer::Ieee80211ErpOfdmPhyHeaderSerializer ( )
inline
92 : FieldsChunkSerializer() {}

Member Function Documentation

◆ deserialize()

const Ptr< Chunk > inet::physicallayer::Ieee80211ErpOfdmPhyHeaderSerializer::deserialize ( MemoryInputStream stream) const
overrideprotectedvirtual

Deserializes a chunk from a stream by reading the bytes at the current position of the stream.

The current stream position is updated according to the length of the returned chunk.

Implements inet::FieldsChunkSerializer.

151 {
152  auto erpOfdmPhyHeader = makeShared<Ieee80211ErpOfdmPhyHeader>();
153  erpOfdmPhyHeader->setRate(stream.readUint4());
154  erpOfdmPhyHeader->setReserved(stream.readBit());
155  erpOfdmPhyHeader->setLengthField(B(stream.readNBitsToUint64Be(12)));
156  erpOfdmPhyHeader->setParity(stream.readBit());
157  erpOfdmPhyHeader->setTail(stream.readNBitsToUint64Be(6));
158  erpOfdmPhyHeader->setService(stream.readUint16Be());
159  return erpOfdmPhyHeader;
160 }

◆ serialize()

void inet::physicallayer::Ieee80211ErpOfdmPhyHeaderSerializer::serialize ( MemoryOutputStream stream,
const Ptr< const Chunk > &  chunk 
) const
overrideprotectedvirtual

ERP OFDM.

Implements inet::FieldsChunkSerializer.

140 {
141  auto erpOfdmPhyHeader = dynamicPtrCast<const Ieee80211ErpOfdmPhyHeader>(chunk);
142  stream.writeUint4(erpOfdmPhyHeader->getRate());
143  stream.writeBit(erpOfdmPhyHeader->getReserved());
144  stream.writeNBitsOfUint64Be(B(erpOfdmPhyHeader->getLengthField()).get(), 12);
145  stream.writeBit(erpOfdmPhyHeader->getParity());
146  stream.writeNBitsOfUint64Be(erpOfdmPhyHeader->getTail(), 6);
147  stream.writeUint16Be(erpOfdmPhyHeader->getService());
148 }

The documentation for this class was generated from the following files:
inet::units::units::B
intscale< b, 1, 8 > B
Definition: Units.h:1168