21#include <unordered_map>
50 uint8_t resno, uint64_t precinctIndex, uint16_t layno, uint32_t cachedLength,
218 return elements[(size_t)currentPopIndex];
310 std::unordered_map<uint64_t, std::unique_ptr<AllLayersPrecinctPacketParser>>
Queue limited to maximum size.
Definition PacketParser.h:177
LimitedQueue(std::size_t maxSize)
Constructs a LimitedQueue.
Definition PacketParser.h:183
bool push(T *ptr)
Pushes an element into the queue.
Definition PacketParser.h:197
std::optional< T * > pop()
Pops an element from the queue.
Definition PacketParser.h:213
std::unique_ptr< T *[]> elements
array of queue elements
Definition PacketParser.h:225
std::atomic< int32_t > popIndex
pop index
Definition PacketParser.h:240
std::size_t maxSize
maximum size of queue
Definition PacketParser.h:235
size_t currentSize
current size of queue
Definition PacketParser.h:230
~LimitedQueue()=default
Destroys a LimitedQueue.
Parses packet header and packer data.
Definition PacketParser.h:35
PacketParser(ITileProcessor *tileProcessor, uint16_t packetSequenceNumber, uint16_t compno, uint8_t resno, uint64_t precinctIndex, uint16_t layno, uint32_t cachedLength, SparseBuffer *compressedPackets)
Constructs PacketParser.
Definition PacketParser.cpp:57
SparseBuffer * packets_
SparseBuffer of all packets
Definition PacketParser.h:126
void readDataFinalize(void)
Finalizes packet data reading after it is complete.
Definition PacketParser.cpp:370
ITileProcessor * tileProcessor_
tile processor
Definition PacketParser.h:91
bool tagBitsPresent_
true if tag bits present in packet header
Definition PacketParser.h:141
size_t layerBytesAvailable_
all available bytes in layer (includes packet header and data)
Definition PacketParser.h:136
uint64_t precinctIndex_
precinct index
Definition PacketParser.h:116
uint32_t headerLength_
packet header length - does not include packed header bytes
Definition PacketParser.h:146
uint16_t packetSequenceNumber_
packet sequence number
Definition PacketParser.h:101
void readData(void)
Reads packet data.
Definition PacketParser.cpp:318
uint16_t tileIndex_
Definition PacketParser.h:93
uint16_t layno_
layer number
Definition PacketParser.h:121
uint32_t signalledLayerDataBytes_
length of packet data as signalled in packet header
Definition PacketParser.h:151
bool parsedHeader_
true if header has been parsed
Definition PacketParser.h:161
bool headerError_
true of there was an error reading the header
Definition PacketParser.h:166
uint32_t plLength_
total packet length as signalled in marker (PLT/PLM)
Definition PacketParser.h:156
uint8_t * layerData_
packets_ current chunk pointer aka layer data
Definition PacketParser.h:131
uint16_t compno_
component number
Definition PacketParser.h:106
void parsePacketData(void)
Definition PacketParser.cpp:375
virtual ~PacketParser(void)=default
Destroys PacketParser.
uint32_t readHeader(void)
Reads packet header.
Definition PacketParser.cpp:82
uint32_t getHeaderLength(void) const
Gets packet header length (valid after readHeader).
Definition PacketParser.cpp:314
uint8_t resno_
resolution number
Definition PacketParser.h:111
void print(void)
Printout for debugging.
Definition PacketParser.cpp:66
Manages a list of buffers (named chunks) which can be treated as one single contiguous buffer.
Definition SparseBuffer.h:41
ResWindow.
Definition CompressedChunkCache.h:36
AllLayersPrecinctPacketParser(ITileProcessor *tileProcessor)
Constructs an AllLayersPrecinctPacketParser.
Definition PacketParser.cpp:388
void enqueue(PacketParser *parser)
Enqueues a layer PacketParser for concurrent parsing.
Definition PacketParser.cpp:392
ITileProcessor * tileProcessor_
ITileProcessor
Definition PacketParser.h:267
~AllLayersPrecinctPacketParser(void)=default
Destroys an AllLayersPrecinctPacketParser.
LimitedQueue< PacketParser > parserQueue_
Queue of PacketParser.
Definition PacketParser.h:272
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37
ResolutionPacketParser(ITileProcessor *tileProcessor)
Constructs a ResolutionPacketParser.
Definition PacketParser.cpp:398
~ResolutionPacketParser()
Destroys a ResolutionPacketParser.
Definition PacketParser.cpp:402
void enqueue(uint64_t precinctIndex, PacketParser *parser)
Enqueues a PacketParser for a precinct, for concurrent parsing.
Definition PacketParser.cpp:411
std::unordered_map< uint64_t, std::unique_ptr< AllLayersPrecinctPacketParser > > allLayerPrecinctParsers_
map of AllLayersPrecinctPacketParser, indexed by precinct index
Definition PacketParser.h:311
void clearPrecinctParsers(void)
Clears map of PrecinctParser.
Definition PacketParser.cpp:407
ITileProcessor * tileProcessor_
ITileProcessor
Definition PacketParser.h:305