27#ifndef PSFILEBUFFER_PSFILEBUFFER_H
28#define PSFILEBUFFER_PSFILEBUFFER_H
30#include "filebuf/PxFileBuf.h"
32#include "foundation/PxUserAllocated.h"
37namespace general_PxIOStream2
55 mFph = fopen(fileName,
"rb");
58 mFph = fopen(fileName,
"wb");
60 case OPEN_READ_WRITE_NEW:
61 mFph = fopen(fileName,
"wb+");
63 case OPEN_READ_WRITE_EXISTING:
64 mFph = fopen(fileName,
"rb+");
66 case OPEN_FILE_NOT_FOUND:
71 fseek(mFph,0L,SEEK_END);
72 mFileLength =
static_cast<uint32_t
>(ftell(mFph));
73 fseek(mFph,0L,SEEK_SET);
77 mOpenMode = OPEN_FILE_NOT_FOUND;
95 virtual SeekType isSeekable(
void)
const
100 virtual uint32_t
read(
void* buffer, uint32_t size)
106 ret =
static_cast<uint32_t
>(::fread(buffer,1,size,mFph));
113 virtual uint32_t
peek(
void* buffer, uint32_t size)
120 ret =
static_cast<uint32_t
>(::fread(buffer,1,size,mFph));
127 virtual uint32_t
write(
const void* buffer, uint32_t size)
133 ret =
static_cast<uint32_t
>(::fwrite(buffer,1,size,mFph));
136 if ( mSeekWrite > mFileLength )
138 mFileLength = mSeekWrite;
157 if ( mSeekRead > mFileLength )
159 mSeekRead = mFileLength;
167 if ( mSeekWrite > mFileLength )
169 mSeekWrite = mFileLength;
182 virtual OpenMode getOpenMode(
void)
const
187 virtual uint32_t getFileLength(
void)
const
194 void setSeekRead(
void)
196 if ( mSeekRead != mSeekCurrent && mFph )
198 if ( mSeekRead >= mFileLength )
200 fseek(mFph,0L,SEEK_END);
204 fseek(mFph,
static_cast<long>(mSeekRead),SEEK_SET);
206 mSeekCurrent = mSeekRead =
static_cast<uint32_t>(ftell(mFph));
210 void setSeekWrite(
void)
212 if ( mSeekWrite != mSeekCurrent && mFph )
214 if ( mSeekWrite >= mFileLength )
216 fseek(mFph,0L,SEEK_END);
220 fseek(mFph,
static_cast<long>(mSeekWrite),SEEK_SET);
222 mSeekCurrent = mSeekWrite =
static_cast<uint32_t>(ftell(mFph));
244using namespace general_PxIOStream2;
Definition PxUserAllocated.h:43
Definition PsFileBuffer.h:238
Callback class for data serialization.
Definition PxFileBuf.h:60
Definition PsFileBuffer.h:42
virtual uint32_t read(void *buffer, uint32_t size)
Reads from the stream into a buffer.
Definition PsFileBuffer.h:100
virtual uint32_t seekWrite(uint32_t loc)
Seeks the stream to a particular location for writing.
Definition PsFileBuffer.h:164
virtual void flush(void)
Causes any temporarily cached data to be flushed to the stream.
Definition PsFileBuffer.h:174
virtual uint32_t write(const void *buffer, uint32_t size)
Writes a buffer of memory to the stream.
Definition PsFileBuffer.h:127
virtual uint32_t tellWrite(void) const
Reports the current stream location for write access.
Definition PsFileBuffer.h:149
virtual uint32_t seekRead(uint32_t loc)
Seeks the stream to a particular location for reading.
Definition PsFileBuffer.h:154
virtual uint32_t peek(void *buffer, uint32_t size)
Reads from the stream into a buffer but does not advance the read location.
Definition PsFileBuffer.h:113
virtual uint32_t tellRead(void) const
Reports the current stream location read aqccess.
Definition PsFileBuffer.h:144
virtual void close()
Close the stream.
Definition PsFileBuffer.h:86
uint32 uint32_t
Definition fwd.hpp:131
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39