![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <Encoder.h>


Public Member Functions | |
| uint64_t | processRecords (size_t recordCount) override=0 |
| unsigned | sourceBufferNextIndex () override |
| uint64_t | currentRecordIndex () override |
| float | bitsPerRecord () override=0 |
| bool | registerFlushToOutput () override=0 |
| size_t | outputAvailable () const override |
| void | outputRead (char *dest, const size_t byteCount) override |
| number of bytes that can be read More... | |
| void | outputClear () override |
| get data from encoder More... | |
| void | sourceBufferSetNew (std::vector< SourceDestBuffer > &sbufs) override |
| size_t | outputGetMaxSize () override |
| void | outputSetMaxSize (unsigned byteCount) override |
| void | dump (int indent=0, std::ostream &os=std::cout) const override |
Public Member Functions inherited from e57::Encoder | |
| virtual | ~Encoder ()=default |
| unsigned | bytestreamNumber () const |
Protected Member Functions | |
| BitpackEncoder (unsigned bytestreamNumber, SourceDestBuffer &sbuf, unsigned outputMaxSize, unsigned alignmentSize) | |
| ================ More... | |
| void | outBufferShiftDown () |
Protected Member Functions inherited from e57::Encoder | |
| Encoder (unsigned bytestreamNumber) | |
Protected Attributes | |
| std::shared_ptr< SourceDestBufferImpl > | sourceBuffer_ |
| std::vector< char > | outBuffer_ |
| size_t | outBufferFirst_ |
| size_t | outBufferEnd_ |
| size_t | outBufferAlignmentSize_ |
| uint64_t | currentRecordIndex_ |
Protected Attributes inherited from e57::Encoder | |
| unsigned | bytestreamNumber_ |
Additional Inherited Members | |
Static Public Member Functions inherited from e57::Encoder | |
| static std::shared_ptr< Encoder > | EncoderFactory (unsigned bytestreamNumber, std::shared_ptr< CompressedVectorNodeImpl > cVector, std::vector< SourceDestBuffer > &sbuf, ustring &codecPath) |
|
protected |
================
Definition at line 204 of file Encoder.cpp.
|
overridepure virtual |
Implements e57::Encoder.
Implemented in e57::BitpackIntegerEncoder< RegisterT >, e57::BitpackStringEncoder, and e57::BitpackFloatEncoder.
|
overridevirtual |
Implements e57::Encoder.
Definition at line 216 of file Encoder.cpp.
References currentRecordIndex_.
|
overridevirtual |
Reimplemented from e57::Encoder.
Reimplemented in e57::BitpackIntegerEncoder< RegisterT >, e57::BitpackStringEncoder, and e57::BitpackFloatEncoder.
Definition at line 348 of file Encoder.cpp.
References currentRecordIndex_, e57::Encoder::dump(), QtCompat::endl(), outBuffer_, outBufferAlignmentSize_, outBufferEnd_, outBufferFirst_, sourceBuffer_, and e57::space().
Referenced by e57::BitpackFloatEncoder::dump(), e57::BitpackStringEncoder::dump(), and e57::BitpackIntegerEncoder< RegisterT >::dump().
|
protected |
Move data down closer to beginning of outBuffer_. But keep outBufferEnd_ as a multiple of outBufferAlignmentSize_. This ensures that writes into buffer can occur on natural boundaries. Otherwise some CPUs will fault.
Buffer is empty, reset indices to 0
Round newEnd up to nearest multiple of outBufferAlignmentSize_.
Double check round up worked
Be paranoid before memory copy
Move available data down closer to beginning of outBuffer_. Overlapping regions ok with memmove().
Update indexes
Definition at line 298 of file Encoder.cpp.
References e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, outBuffer_, outBufferAlignmentSize_, outBufferEnd_, outBufferFirst_, outputAvailable(), and e57::toString().
Referenced by e57::BitpackFloatEncoder::processRecords(), and e57::BitpackStringEncoder::processRecords().
|
overridevirtual |
Implements e57::Encoder.
Definition at line 221 of file Encoder.cpp.
References outBufferEnd_, and outBufferFirst_.
Referenced by outBufferShiftDown(), and outputRead().
|
overridevirtual |
get data from encoder
Implements e57::Encoder.
Definition at line 266 of file Encoder.cpp.
References outBufferEnd_, and outBufferFirst_.
|
overridevirtual |
Its size that matters here, not capacity
Implements e57::Encoder.
Definition at line 283 of file Encoder.cpp.
References outBuffer_.
|
overridevirtual |
number of bytes that can be read
Check we have enough bytes in queue
Copy output bytes to caller
Advance head pointer.
Don't slide remaining data down now, wait until do some more processing (that's when data needs to be aligned).
Implements e57::Encoder.
Definition at line 226 of file Encoder.cpp.
References e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, QtCompat::endl(), outBuffer_, outBufferFirst_, outputAvailable(), and e57::toString().
|
overridevirtual |
Ignore if trying to shrink buffer (queue might get messed up).
Implements e57::Encoder.
Definition at line 289 of file Encoder.cpp.
References outBuffer_.
|
overridepure virtual |
Implements e57::Encoder.
Implemented in e57::BitpackIntegerEncoder< RegisterT >, e57::BitpackStringEncoder, and e57::BitpackFloatEncoder.
|
overridepure virtual |
Implements e57::Encoder.
Implemented in e57::BitpackIntegerEncoder< RegisterT >, e57::BitpackStringEncoder, and e57::BitpackFloatEncoder.
|
overridevirtual |
|
overridevirtual |
Verify that this encoder only has single input buffer
Implements e57::Encoder.
Definition at line 272 of file Encoder.cpp.
References e57::E57_ERROR_INTERNAL, E57_EXCEPTION2, sourceBuffer_, and e57::toString().
|
protected |
Definition at line 105 of file Encoder.h.
Referenced by e57::BitpackStringEncoder::bitsPerRecord(), currentRecordIndex(), dump(), e57::BitpackFloatEncoder::processRecords(), and e57::BitpackStringEncoder::processRecords().
|
protected |
Definition at line 100 of file Encoder.h.
Referenced by dump(), outBufferShiftDown(), outputGetMaxSize(), outputRead(), outputSetMaxSize(), e57::BitpackFloatEncoder::processRecords(), and e57::BitpackStringEncoder::processRecords().
|
protected |
Definition at line 103 of file Encoder.h.
Referenced by dump(), and outBufferShiftDown().
|
protected |
Definition at line 102 of file Encoder.h.
Referenced by dump(), outBufferShiftDown(), outputAvailable(), outputClear(), e57::BitpackFloatEncoder::processRecords(), and e57::BitpackStringEncoder::processRecords().
|
protected |
Definition at line 101 of file Encoder.h.
Referenced by dump(), outBufferShiftDown(), outputAvailable(), outputClear(), and outputRead().
|
protected |
Definition at line 98 of file Encoder.h.
Referenced by dump(), e57::BitpackFloatEncoder::processRecords(), e57::BitpackStringEncoder::processRecords(), sourceBufferNextIndex(), and sourceBufferSetNew().