A Discrete-Event Network Simulator
API
ns3::BitDeserializer Class Reference

Bit deserializer. More...

#include "bit-deserializer.h"

+ Collaboration diagram for ns3::BitDeserializer:

Public Member Functions

 BitDeserializer ()
 
uint64_t GetBits (uint8_t size)
 Pops a given number of bits from the blob front. More...
 
void PushByte (uint8_t byte)
 Pushes one byte into the blob to be deserialized. More...
 
void PushBytes (std::vector< uint8_t > bytes)
 Pushes some bytes into the blob to be deserialized. More...
 
void PushBytes (uint8_t *bytes, uint32_t size)
 Pushes some bytes into the blob to be deserialized. More...
 

Private Member Functions

void PrepareDeserialization ()
 Prepare the byte array to the deserialization. More...
 

Private Attributes

std::deque< bool > m_blob
 Blob of bits ready to be deserialized. More...
 
std::vector< uint8_t > m_bytesBlob
 Blob of bytes to be deserialized. More...
 
bool m_deserializing
 True if the deserialization did start already. More...
 

Detailed Description

Bit deserializer.

See also

See also
ns3::BitSerializer

This class helps converting a variable number, variable sized number of bit-boundary fields stored as byte array representation and extract the original bit-fields.

Note that once the Deserialization starts, it's not anymore possible to add more data to the byte blob to deserialize.

Definition at line 42 of file bit-deserializer.h.

Constructor & Destructor Documentation

◆ BitDeserializer()

ns3::BitDeserializer::BitDeserializer ( )

Definition at line 30 of file bit-deserializer.cc.

References m_deserializing, and NS_LOG_FUNCTION.

Member Function Documentation

◆ GetBits()

uint64_t ns3::BitDeserializer::GetBits ( uint8_t  size)

Pops a given number of bits from the blob front.

In other terms, 'size' bits are shifted from the contents of the byte blob onto the return value.

The maximum number of bits to be deserialized in one single call is 64.

Parameters
sizeThe number of bits to pop.
Returns
The popped bits value

Definition at line 60 of file bit-deserializer.cc.

References m_blob, NS_ABORT_MSG_IF, NS_LOG_FUNCTION, and PrepareDeserialization().

Referenced by BitDeserializerTest::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PrepareDeserialization()

void ns3::BitDeserializer::PrepareDeserialization ( )
private

Prepare the byte array to the deserialization.

Definition at line 78 of file bit-deserializer.cc.

References m_blob, m_bytesBlob, m_deserializing, and NS_LOG_FUNCTION.

Referenced by GetBits().

+ Here is the caller graph for this function:

◆ PushByte()

void ns3::BitDeserializer::PushByte ( uint8_t  byte)

Pushes one byte into the blob to be deserialized.

Parameters
byteThe byte to add.

Definition at line 53 of file bit-deserializer.cc.

References m_bytesBlob, m_deserializing, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

◆ PushBytes() [1/2]

void ns3::BitDeserializer::PushBytes ( std::vector< uint8_t >  bytes)

Pushes some bytes into the blob to be deserialized.

Parameters
bytesThe bytes to add.

Definition at line 36 of file bit-deserializer.cc.

References m_bytesBlob, m_deserializing, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Referenced by BitDeserializerTest::DoRun().

+ Here is the caller graph for this function:

◆ PushBytes() [2/2]

void ns3::BitDeserializer::PushBytes ( uint8_t *  bytes,
uint32_t  size 
)

Pushes some bytes into the blob to be deserialized.

Parameters
bytesThe bytes to add.
sizeThe length of the array.

Definition at line 43 of file bit-deserializer.cc.

References m_bytesBlob, m_deserializing, NS_ABORT_MSG_IF, and NS_LOG_FUNCTION.

Member Data Documentation

◆ m_blob

std::deque<bool> ns3::BitDeserializer::m_blob
private

Blob of bits ready to be deserialized.

Definition at line 84 of file bit-deserializer.h.

Referenced by GetBits(), and PrepareDeserialization().

◆ m_bytesBlob

std::vector<uint8_t> ns3::BitDeserializer::m_bytesBlob
private

Blob of bytes to be deserialized.

Definition at line 85 of file bit-deserializer.h.

Referenced by PrepareDeserialization(), PushByte(), and PushBytes().

◆ m_deserializing

bool ns3::BitDeserializer::m_deserializing
private

True if the deserialization did start already.

Definition at line 86 of file bit-deserializer.h.

Referenced by BitDeserializer(), PrepareDeserialization(), PushByte(), and PushBytes().


The documentation for this class was generated from the following files: