Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Info
titleSee Also

GeoFileStream which stores/loads content from a file.

Functions

NameDescription
~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)


Anchor
ae01b40e7a8901409e456597b1c47ae68
ae01b40e7a8901409e456597b1c47ae68

virtual Geo::IGeoInputStream::~IGeoInputStream

...

public: virtual ~IGeoInputStream()

...

Deleting a stream should behave like a close operation.


Anchor
abb2da2774c474f504e4e483e96437b75
abb2da2774c474f504e4e483e96437b75

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)


Anchor
a1d5d6429a25d9275e1b77c2390222f73
a1d5d6429a25d9275e1b77c2390222f73

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)


Anchor
a1ffb27baedd5eab9e075389fd4a45263
a1ffb27baedd5eab9e075389fd4a45263

virtual bool Geo::IGeoInputStream::IsOk

...

public: bool IsOk() const

...

Tests if the stream is valid.


Anchor
aa299ffca66c6b0cf5a4cdeedcebf4cf4
aa299ffca66c6b0cf5a4cdeedcebf4cf4

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>).


Anchor
a2bdc1ec2ed234832370c8e5f1dcc923c
a2bdc1ec2ed234832370c8e5f1dcc923c

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.


Anchor
a7564a03e0ebbee028920a1770ccc5cdd
a7564a03e0ebbee028920a1770ccc5cdd

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.


Anchor
a8873e5418d057d093fbdd0c69cc383f2
a8873e5418d057d093fbdd0c69cc383f2

bool Geo::IGeoInputStream::Read

...

public: bool Read
(
    T(&) a
)

...

Read a fixed size array.


Anchor
a95aa1b762401c201b68c020cb20a0e34
a95aa1b762401c201b68c020cb20a0e34

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>).


Anchor
a85890dac322ac71c33ec6049ff351000
a85890dac322ac71c33ec6049ff351000

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>).


Anchor
ad1748f884ed4358b4b42d8c8fc7b3fb7
ad1748f884ed4358b4b42d8c8fc7b3fb7

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.


Anchor
aaedb05f09c0b2f105e77388160aa9541
aaedb05f09c0b2f105e77388160aa9541

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)