ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
IndexPacket Struct Reference
Collaboration diagram for IndexPacket:

Classes

struct  IndexPacketEntry
 

Public Member Functions

void verify (unsigned bufferLength=0, uint64_t totalRecordCount=0, uint64_t fileSize=0) const
 
void dump (int indent=0, std::ostream &os=std::cout) const
 

Public Attributes

const uint8_t packetType = INDEX_PACKET
 
uint8_t packetFlags = 0
 
uint16_t packetLogicalLengthMinus1 = 0
 
uint16_t entryCount = 0
 
uint8_t indexLevel = 0
 
uint8_t reserved1 [9] = {}
 
struct IndexPacket::IndexPacketEntry entries [MAX_ENTRIES]
 

Static Public Attributes

static constexpr unsigned MAX_ENTRIES = 2048
 

Detailed Description

Definition at line 35 of file Packet.cpp.

Member Function Documentation

◆ dump()

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

Definition at line 669 of file Packet.cpp.

References QtCompat::endl(), and e57::space().

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

◆ verify()

void IndexPacket::verify ( unsigned  bufferLength = 0,
uint64_t  totalRecordCount = 0,
uint64_t  fileSize = 0 
) const

Verify that packet is correct type

Check packetLength is at least large enough to hold header

Check packet length is multiple of 4

Make sure there is at least one entry in packet ??? 0 record cvect allowed?

Have to have <= 2048 entries

Index level should be <= 5. Because (5+1)* 11 bits = 66 bits, which will cover largest number of chunks possible.

Index packets above level 0 must have at least two entries (otherwise no point to existing). ??? check that this is in spec

If not later version, verify reserved fields are zero. ??? test file version if (version <= E57_FORMAT_MAJOR) { //???

Check actual packet length is large enough.

Check if entries will fit in space provided

Definition at line 544 of file Packet.cpp.

References e57::E57_ERROR_BAD_CV_PACKET, E57_EXCEPTION2, e57::INDEX_PACKET, and e57::toString().

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

Member Data Documentation

◆ entries

struct IndexPacket::IndexPacketEntry IndexPacket::entries[MAX_ENTRIES]

◆ entryCount

uint16_t IndexPacket::entryCount = 0

Definition at line 43 of file Packet.cpp.

◆ indexLevel

uint8_t IndexPacket::indexLevel = 0

Definition at line 44 of file Packet.cpp.

◆ MAX_ENTRIES

constexpr unsigned IndexPacket::MAX_ENTRIES = 2048
staticconstexpr

Definition at line 37 of file Packet.cpp.

◆ packetFlags

uint8_t IndexPacket::packetFlags = 0

Definition at line 41 of file Packet.cpp.

◆ packetLogicalLengthMinus1

uint16_t IndexPacket::packetLogicalLengthMinus1 = 0

Definition at line 42 of file Packet.cpp.

◆ packetType

const uint8_t IndexPacket::packetType = INDEX_PACKET

Definition at line 39 of file Packet.cpp.

◆ reserved1

uint8_t IndexPacket::reserved1[9] = {}

Definition at line 45 of file Packet.cpp.


The documentation for this struct was generated from the following file: