class Geo::GeoFileStream
└>Geo::IGeoStream
└>Geo::IGeoInputStream
Simple IGeoStream implementation that saves/loads data from a file.
Enums
Name | Description |
---|---|
EStreamFormat | The underlying stream format can be either binary or text. |
EStreamMode | An IGeoStream is open in either esmRead or esmWrite mode. |
Functions
Name | Description |
---|---|
~GeoFileStream() | close current file, if any |
~IGeoInputStream() | Deleting a stream should behave like a close operation. |
~IGeoStream() | Deleting a stream should behave like a close operation. |
Attach(FILE *) | close current file, if any, and attach open file |
BeginType(TypeId, u32) | Provide information about the typed data written to the stream. |
Close() | close current file, if any |
Detach() | detach current file, if any, and return it |
EndType(u32) | Provide information about the typed data written to the stream. |
GeoFileStream() | create with no attached file |
GeoFileStream(FILE *) | auto-attach fd ... will be closed in ~GeoFileStream unless Detached first |
GetFilename() | Return the filename with which this stream was opened (not available if created with FILE*) |
GetPosition() | Return the position of the read/write pointer within the stream (prototype matches ftell) |
GetPosition() | Return the position of the read/write pointer within the stream (prototype matches ftell) |
GetPosition() | Return the position of the read/write pointer within the stream (prototype matches ftell) |
IsEof() | Is the read/write pointer at the end of the file (as with feof, only returns true if you have read past end) |
IsEof() | Is the read/write pointer at the end of the file (as with feof, only returns true if you have read past end) |
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. |
IsOk() | Tests if the stream is valid. |
IsOk(void) | Tests if the stream is valid. |
Open(const char *, EStreamMode, EStreamFormat) | close current file, if any, and open filename |
Read(TIter, TIter) | Read a collection of objects, returning true on success. |
Read(void *, size_t, size_t) | Read data (prototype matches fread). Prefer to use the templated Read methods. |
Read(void *, size_t, size_t) | Read data (prototype matches fread). Prefer to use the templated Read methods. |
Read(T &) | Read a single object, returning true on success. |
Read(T(&)) | Read a fixed size array. |
ReadImpl(T &, GeoStd::FalseType) | Read a single object, returning true on success. |
ReadImpl(T &, GeoStd::TrueType) | Read a single object, returning true on success. |
ReadToEnd() | Reads the stream to its end and returns the data as a char array. |
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) |
SetPosition(u64) | Set the position of the read/write pointer within the stream (prototype matches fseek) |
SetPosition(u64) | Set the position of the read/write pointer within the stream (prototype matches fseek) |
Write(TIter, TIter) | Write a collection of objects, in range [begin, end) as STL-style classes support. |
Write(const T &) | Write a single object, returning true on success. |
Write(const void *, size_t, size_t) | Write data (prototype matches fwrite). Prefer to use the templated Write methods. |
Write(const T(&)) | Write a fixed size array. |
Write(const void *, size_t, size_t) | Write data (prototype matches fwrite). Prefer to use the templated Write methods. |
EStreamFormat
public: enum EStreamFormat
{
esfBinary,
esfText
}
The underlying stream format can be either binary or text.
enumerators
esfBinary | |
esfText |
EStreamMode
public: enum EStreamMode
{
esmWrite,
esmRead
}
An IGeoStream is open in either esmRead or esmWrite mode.
enumerators
esmWrite | |
esmRead |
Geo::GeoFileStream::~GeoFileStream
public: ~GeoFileStream()
close current file, if any
virtual Geo::IGeoInputStream::~IGeoInputStream
public: virtual ~IGeoInputStream()
Deleting a stream should behave like a close operation.
virtual Geo::IGeoStream::~IGeoStream
public: virtual ~IGeoStream()
Deleting a stream should behave like a close operation.
void Geo::GeoFileStream::Attach
public: void Attach
(
FILE * fd
)
close current file, if any, and attach open file
virtual u32 Geo::IGeoStream::BeginType
public: virtual u32 BeginType
(
TypeId type,
u32 count
)
Provide information about the typed data written to the stream.
void Geo::GeoFileStream::Close
public: void Close()
close current file, if any
FILE* Geo::GeoFileStream::Detach
public: FILE * Detach()
detach current file, if any, and return it
virtual void Geo::IGeoStream::EndType
public: virtual void EndType
(
u32 index
)
Provide information about the typed data written to the stream.
Geo::GeoFileStream::GeoFileStream
public: GeoFileStream()
create with no attached file
Geo::GeoFileStream::GeoFileStream
public: GeoFileStream
(
FILE * fd
)
auto-attach fd ... will be closed in ~GeoFileStream unless Detached first
const char* Geo::GeoFileStream::GetFilename
public: const char * GetFilename() const
Return the filename with which this stream was opened (not available if created with FILE*)
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 u64 Geo::GeoFileStream::GetPosition
public: virtual u64 GetPosition() const
Return the position of the read/write pointer within the stream (prototype matches ftell)
virtual u64 Geo::IGeoStream::GetPosition
public: u64 GetPosition() const
Return the position of the read/write pointer within the stream (prototype matches ftell)
virtual bool Geo::IGeoStream::IsEof
public: bool IsEof() const
Is the read/write pointer at the end of the file (as with feof, only returns true if you have read past end)
virtual bool Geo::GeoFileStream::IsEof
public: virtual bool IsEof() const
Is the read/write pointer at the end of the file (as with feof, only returns true if you have read past end)
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::IGeoStream::IsOk
public: bool IsOk() const
Tests if the stream is valid.
virtual bool Geo::IGeoInputStream::IsOk
public: bool IsOk() const
Tests if the stream is valid.
virtual bool Geo::GeoFileStream::IsOk
public: virtual bool IsOk
(
void
) const
Tests if the stream is valid.
bool Geo::GeoFileStream::Open
public: bool Open
(
const char * filename,
EStreamMode mode,
EStreamFormat format
)
close current file, if any, and open filename
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.
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.
virtual size_t Geo::GeoFileStream::Read
public: virtual size_t Read
(
void * pData,
size_t size,
size_t count
)
Read data (prototype matches fread). Prefer to use the templated Read methods.
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>).
bool Geo::IGeoInputStream::Read
public: bool Read
(
T(&) a
)
Read a fixed size array.
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>).
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>).
virtual Geo::GeoArray<char> Geo::GeoFileStream::ReadToEnd
public: virtual Geo::GeoArray< char > ReadToEnd()
Reads the stream to its end and returns the data as a char array.
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)
virtual bool Geo::IGeoStream::SetPosition
public: bool SetPosition
(
u64 pos
)
Set the position of the read/write pointer within the stream (prototype matches fseek)
virtual bool Geo::GeoFileStream::SetPosition
public: virtual bool SetPosition
(
u64 pos
)
Set the position of the read/write pointer within the stream (prototype matches fseek)
bool Geo::IGeoStream::Write
public: bool Write
(
TIter begin,
TIter end
)
Write a collection of objects, in range [begin, end) as STL-style classes support.
Objects have same requirements single object Write (see IsBlittable<T>).
GEO_FORCE_INLINE bool Geo::IGeoStream::Write
public: GEO_FORCE_INLINE bool Write
(
const T & object
)
Write a single object, returning true on success.
There must either be a WriteObject overload for T, or T must be blittable (see IsBlittable<T>).
virtual size_t Geo::GeoFileStream::Write
public: virtual size_t Write
(
const void * pData,
size_t size,
size_t count
)
Write data (prototype matches fwrite). Prefer to use the templated Write methods.
bool Geo::IGeoStream::Write
public: bool Write
(
const T(&) a
)
Write a fixed size array.
virtual size_t Geo::IGeoStream::Write
public: size_t Write
(
const void * pData,
size_t size,
size_t count
)
Write data (prototype matches fwrite). Prefer to use the templated Write methods.