pdal::IStream

class IStream

Stream wrapper for input of binary data.

Subclassed by pdal::IBeStream, pdal::ILeStream, pdal::ISwitchableStream

Public Functions

inline IStream()

Default constructor.

inline IStream(const std::string &filename)

Construct an IStream from a filename.

Parameters

filename – File from which to read.

inline IStream(std::istream *stream)

Construct an IStream from an input stream pointer.

Parameters

stream – Stream from which to read.

inline ~IStream()
inline int open(const std::string &filename)

Open a file to extract.

Parameters

filename – Filename.

Returns

-1 if a stream is already assigned, 0 otherwise.

inline void close()

Close the underlying stream.

inline operator bool()

Return the state of the stream.

Returns

The state of the underlying stream.

inline void seek(std::streampos pos)

Seek to a position in the underlying stream.

Parameters

pos – Position to seek to,

inline void seek(std::streampos off, std::ios_base::seekdir way)

Seek to an offset from a specified position.

Parameters
  • off – Offset.

  • way – Absolute position for offset (beg, end or cur)

inline void skip(std::streamoff offset)

Skip relative to the current position.

Parameters

offset – Offset from the current position.

inline std::streampos position() const

Determine the position of the get pointer.

Returns

Current get position.

inline bool good() const

Determine if the underlying stream is good.

Returns

Whether the underlying stream is good.

inline std::istream *stream()

Fetch a pointer to the underlying stream.

Returns

Pointer to the underlying stream.

inline void pushStream(std::istream *strm)

Temporarily push a stream to read from.

Parameters

strm – New stream to read from.

inline std::istream *popStream()

Pop the current stream and return it.

The last stream on the stack cannot be popped.

Returns

Pointer to the popped stream.

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

Fetch data from the stream into a string.

NOTE - Stops when a null byte is encountered. Use a buffer/vector reader to read data with embedded nulls.

Parameters
  • s – String to fill.

  • size – Maximum number of bytes to extract.

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

Fetch data from the stream into a vector of char.

Parameters

buf – Buffer to fill.

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

Fetch data from the stream into a vector of unsigned char.

Parameters

buf – Buffer to fill.

inline void get(char *buf, size_t size)

Fetch data from the stream into the specified buffer of char.

Parameters
  • buf – Buffer to fill.

  • size – Number of bytes to extract.

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

Fetch data from the stream into the specified buffer of unsigned char.

Parameters
  • buf – Buffer to fill.

  • size – Number of bytes to extract.