pdal::IStream

class pdal::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.