pdal::Extractor

class Extractor

Buffer wrapper for input of binary data from a buffer.

Subclassed by pdal::BeExtractor, pdal::LeExtractor, pdal::SwitchableExtractor

Public Functions

inline Extractor(const char *buf, std::size_t size)

Construct an extractor to operate on a buffer.

Parameters
  • buf – Buffer to extract from.

  • size – Buffer size.

inline operator bool()

Determine if the buffer is good.

Returns

Whether the buffer is good.

inline void seek(std::size_t pos)

Seek to a position in the buffer.

Parameters

pos – Position to seek in buffer.

inline void skip(std::size_t cnt)

Advance buffer position.

Parameters

cnt – Number of bytes to skip in buffer.

inline size_t position() const

Return the get position of buffer.

Returns

Get position.

inline bool good() const

Determine whether the extractor is good (the get pointer is in the buffer).

Returns

Whether the get pointer is valid.

inline void get(std::string &s, size_t size)

Extract a string of a particular size from the buffer.

Trim trailing null bytes.

Parameters
  • s – String to extract to.

  • size – Number of bytes to extract from buffer into string.

inline void get(std::vector<char> &buf)

Extract data to char vector.

Vector must be sized to indicate number of bytes to extract.

Parameters

buf – Vector to which bytes should be extracted.

inline void get(std::vector<unsigned char> &buf)

Extract data to unsigned char vector.

Vector must be sized to indicate number of bytes to extract.

Parameters

buf – Vector to which bytes should be extracted.

inline void get(char *buf, size_t size)

Extract data into a provided buffer.

Parameters
  • buf – Pointer to buffer to which bytes should be extracted.

  • size – Number of bytes to extract.

inline void get(unsigned char *buf, size_t size)

Extract data into a provided unsigned buffer.

Parameters
  • buf – Pointer to buffer to which bytes should be extracted.

  • size – Number of bytes to extract.

virtual Extractor &operator>>(uint8_t &v) = 0
virtual Extractor &operator>>(int8_t &v) = 0
virtual Extractor &operator>>(uint16_t &v) = 0
virtual Extractor &operator>>(int16_t &v) = 0
virtual Extractor &operator>>(uint32_t &v) = 0
virtual Extractor &operator>>(int32_t &v) = 0
virtual Extractor &operator>>(uint64_t &v) = 0
virtual Extractor &operator>>(int64_t &v) = 0
virtual Extractor &operator>>(float &v) = 0
virtual Extractor &operator>>(double &v) = 0