This is the documentation for Enlighten.

class Geo IGeoInputStream

class Geo::IGeoInputStream

An IGeoInputStream allows you to read memory/files in a consistent manner, and is an extension point for users wishing to control where data is stored.

The simplest implementation is

See Also

GeoFileStream which stores/loads content from a file.

Functions

Name Description
~IGeoInputStream()

Deleting a stream should behave like a close operation.

GetPosition()

Return the position of the read/write pointer within the stream (prototype matches ftell)

IsEof()

Is the read pointer at the end of the file (as with feof, only returns true if you have read past end)

IsOk()

Tests if the stream is valid.

Read(T &)

Read a single object, returning true on success.

Read(void *, size_t, size_t)

Read data (prototype matches fread). Prefer to use the templated Read methods.

Read(TIter, TIter)

Read a collection of objects, returning true on success.

Read(T(&))

Read a fixed size array.

ReadImpl(T &, GeoStd::TrueType)

Read a single object, returning true on success.

ReadImpl(T &, GeoStd::FalseType)

Read a single object, returning true on success.

ReadToEnd()

Reads the stream to its end and returns the data as a char array.

SetPosition(Geo::u64)

Set the position of the read/write pointer within the stream (prototype matches fseek)


virtual Geo::IGeoInputStream::~IGeoInputStream


public: virtual ~IGeoInputStream()


Deleting a stream should behave like a close operation.


virtual Geo::u64 Geo::IGeoInputStream::GetPosition


public: Geo::u64 GetPosition() const


Return the position of the read/write pointer within the stream (prototype matches ftell)


virtual bool Geo::IGeoInputStream::IsEof


public: bool IsEof() const


Is the read pointer at the end of the file (as with feof, only returns true if you have read past end)


virtual bool Geo::IGeoInputStream::IsOk


public: bool IsOk() const


Tests if the stream is valid.


GEO_FORCE_INLINE bool Geo::IGeoInputStream::Read


public: GEO_FORCE_INLINE bool Read
(
    T & object
)


Read a single object, returning true on success.

There must either be a ReadObject overload for T, or T be considered blittable (see IsBlittable<T>).


virtual size_t Geo::IGeoInputStream::Read


public: size_t Read
(
    void * pData,
    size_t size,
    size_t count
)


Read data (prototype matches fread). Prefer to use the templated Read methods.


bool Geo::IGeoInputStream::Read


public: bool Read
(
    TIter begin,
    TIter end
)


Read a collection of objects, returning true on success.

Object must be considered blittable (see IsBlittable<T>). Note that the storage must have been pre-allocated as it will write directly to the iterators provided. Given that we do not have the STL-style 'back-inserter' classes, for GeoArrays you should use the ReadArray helper function.


bool Geo::IGeoInputStream::Read


public: bool Read
(
    T(&) a
)


Read a fixed size array.


bool Geo::IGeoInputStream::ReadImpl


public: bool ReadImpl
(
    T & object,
    GeoStd::TrueType
)


Read a single object, returning true on success.

There must either be a ReadObject overload for T, or T be considered blittable (see IsBlittable<T>).


bool Geo::IGeoInputStream::ReadImpl


public: bool ReadImpl
(
    T & object,
    GeoStd::FalseType
)


Read a single object, returning true on success.

There must either be a ReadObject overload for T, or T be considered blittable (see IsBlittable<T>).


virtual Geo::GeoArray<char> Geo::IGeoInputStream::ReadToEnd


public: virtual Geo::GeoArray< char > ReadToEnd()


Reads the stream to its end and returns the data as a char array.


virtual bool Geo::IGeoInputStream::SetPosition


public: bool SetPosition
(
    Geo::u64 pos
)


Set the position of the read/write pointer within the stream (prototype matches fseek)