neuray API Programmer's Manual

mi::neuraylib::IReader Class Reference

[Importer and Exporter]

Description

A reader supports binary block reads and string-oriented line reads that zero-terminate the result.

Public Member Functions

virtual Sint64 read( char* buffer, Sint64 size) =0
Reads a number of bytes from the stream. More...
virtual bool  readline( char* buffer, Sint32 size) =0
Reads a line from the stream. More...

Lookahead capability

virtual Sint64 lookahead( Sint64 size, const char** buffer) const =0
Gives access to the lookahead data. More...
virtual bool  supports_lookahead() const =0
Indicates whether lookahead is (in principle) supported. More...

Member Functions

virtual Sint64 mi::​neuraylib::​IReader::lookahead( Sint64 size, const char** buffer) const [pure virtual]

Gives access to the lookahead data. The first size bytes of binary data are made available from the reader without changing its read position. The method sets the buffer pointer to point to the available lookahead data. It may be set to 0 if no lookahead is available, in which case the return value must be either 0 or -1.

Parameters

size
The size of the desired lookahead.
buffer
The address of a pointer to the buffer with the lookahead data. The address might be NULL if no lookahead is available, in which case the return value is either 0 or -1. The buffer is owned by the reader and must not be changed or deleted.

Returns

The number of bytes made available in the buffer, which may larger than, equal to, or less than the requested size, or 0 if no lookahead is available, or -1 in case of errors.

virtual Sint64 mi::​neuraylib::​IReader::read( char* buffer, Sint64 size) [pure virtual]

Reads a number of bytes from the stream.

Parameters

buffer
The buffer to store the data in.
size
The number of bytes to be read.

Returns

The number of bytes read, which may be less than size , or -1 in case of errors.

virtual bool mi::​neuraylib::​IReader::readline( char* buffer, Sint32 size) [pure virtual]

Reads a line from the stream. Reads at most size - 1 characters from the stream and stores them in buffer. Reading stops after a newline character or an end-of-file. If a newline is read, it is stored in the buffer. The buffer contents will be zero-terminated.

Parameters

buffer
The buffer to store the data in.
size
The maximum number of bytes to be read.

Returns

true in case of success, or false in case of errors.

virtual bool mi::​neuraylib::​IReader::supports_lookahead() const [pure virtual]

Indicates whether lookahead is (in principle) supported. An actual lookahead request might still report zero bytes of available lookahead data.