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 | ||
---|---|---|
| ||
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) |
Anchor | ||||
---|---|---|---|---|
|
virtual Geo::IGeoInputStream::~IGeoInputStream
...
public: virtual ~IGeoInputStream()
...
Deleting a stream should behave like a close operation.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
virtual bool Geo::IGeoInputStream::IsOk
...
public: bool IsOk() const
...
Tests if the stream is valid.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
bool Geo::IGeoInputStream::Read
...
public: bool Read
(
T(&) a
)
...
Read a fixed size array.
Anchor | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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 | ||||
---|---|---|---|---|
|
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)