ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
e57::DataPacket Class Reference

#include <Packet.h>

Collaboration diagram for e57::DataPacket:

Public Member Functions

 DataPacket ()
 
void verify (unsigned bufferLength=0) const
 
char * getBytestream (unsigned bytestreamNumber, unsigned &byteCount)
 
unsigned getBytestreamBufferLength (unsigned bytestreamNumber)
 
void dump (int indent=0, std::ostream &os=std::cout) const
 

Public Attributes

DataPacketHeader header
 
uint8_t payload [PayloadSize]
 

Static Public Attributes

static constexpr int PayloadSize = DATA_PACKET_MAX - sizeof( DataPacketHeader )
 

Detailed Description

Definition at line 122 of file Packet.h.

Constructor & Destructor Documentation

◆ DataPacket()

DataPacket::DataPacket ( )

Double check that packet struct is correct length. Watch out for RTTI increasing the size.

Definition at line 402 of file Packet.cpp.

Member Function Documentation

◆ dump()

void DataPacket::dump ( int  indent = 0,
std::ostream &  os = std::cout 
) const

◆ getBytestream()

char * DataPacket::getBytestream ( unsigned  bytestreamNumber,
unsigned &  byteCount 
)

Verify that packet is correct type

Check bytestreamNumber in bounds

Calc positions in packet

Sum size of preceeding stream buffers to get position

Double check buffer is completely within packet

Return start of buffer

Definition at line 453 of file Packet.cpp.

References e57::DataPacketHeader::bytestreamCount, e57::DATA_PACKET, e57::E57_ERROR_BAD_CV_PACKET, e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, QtCompat::endl(), header, e57::DataPacketHeader::packetLogicalLengthMinus1, e57::DataPacketHeader::packetType, payload, and e57::toString().

Referenced by getBytestreamBufferLength().

◆ getBytestreamBufferLength()

unsigned DataPacket::getBytestreamBufferLength ( unsigned  bytestreamNumber)

Definition at line 499 of file Packet.cpp.

References getBytestream().

◆ verify()

void DataPacket::verify ( unsigned  bufferLength = 0) const

Verify header is good

Calc sum of lengths of each bytestream buffer in this packet

Calc size of packet needed

If needed is not with 3 bytes of actual packet size, have an error

Verify that padding at end of packet is zero

Definition at line 409 of file Packet.cpp.

References e57::DataPacketHeader::bytestreamCount, e57::E57_ERROR_BAD_CV_PACKET, E57_EXCEPTION2, QtCompat::endl(), header, e57::DataPacketHeader::packetLogicalLengthMinus1, payload, e57::toString(), and e57::DataPacketHeader::verify().

Referenced by e57::PacketReadCache::readPacket().

Member Data Documentation

◆ header

DataPacketHeader e57::DataPacket::header

Definition at line 137 of file Packet.h.

Referenced by dump(), getBytestream(), and verify().

◆ payload

uint8_t e57::DataPacket::payload[PayloadSize]

Definition at line 139 of file Packet.h.

Referenced by dump(), getBytestream(), and verify().

◆ PayloadSize

constexpr int e57::DataPacket::PayloadSize = DATA_PACKET_MAX - sizeof( DataPacketHeader )
staticconstexpr

Definition at line 135 of file Packet.h.


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