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