mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-18 11:19:10 +00:00
Replace hsStream::Open duplicated methods everywhere with a single plFileName interface
This commit is contained in:
@ -60,8 +60,7 @@ public:
|
||||
hsVectorStream(uint32_t chunkSize);
|
||||
virtual ~hsVectorStream();
|
||||
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "hsVectorStream::Open Not Implemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "hsVectorStream::Open Not Implemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "hsVectorStream::Open Not Implemented"); return false; }
|
||||
virtual bool Close() { hsAssert(0, "hsVectorStream::Close Not Implemented"); return false; }
|
||||
|
||||
virtual bool AtEnd();
|
||||
|
@ -684,17 +684,10 @@ hsUNIXStream::~hsUNIXStream()
|
||||
// Don't Close here, because Sub classes Don't always want that behaviour!
|
||||
}
|
||||
|
||||
bool hsUNIXStream::Open(const char *name, const char *mode)
|
||||
bool hsUNIXStream::Open(const plFileName &name, const char *mode)
|
||||
{
|
||||
fPosition = 0;
|
||||
fRef = hsFopen(name, mode);
|
||||
return (fRef) ? true : false;
|
||||
}
|
||||
|
||||
bool hsUNIXStream::Open(const wchar_t *name, const wchar_t *mode)
|
||||
{
|
||||
fPosition = 0;
|
||||
fRef = hsWFopen(name, mode);
|
||||
fRef = plFileSystem::Open(name, mode);
|
||||
return (fRef) ? true : false;
|
||||
}
|
||||
|
||||
@ -1222,23 +1215,15 @@ hsBufferedStream::hsBufferedStream()
|
||||
, fBufferReadOut(0)
|
||||
, fReadDirect(0)
|
||||
, fLastReadPos(0)
|
||||
, fFilename(nil)
|
||||
, fCloseReason(nil)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
hsBufferedStream::~hsBufferedStream()
|
||||
{
|
||||
#ifdef LOG_BUFFERED
|
||||
delete [] fFilename;
|
||||
#endif // LOG_BUFFERED
|
||||
}
|
||||
|
||||
bool hsBufferedStream::Open(const char* name, const char* mode)
|
||||
bool hsBufferedStream::Open(const plFileName& name, const char* mode)
|
||||
{
|
||||
hsAssert(!fRef, "hsBufferedStream:Open Stream already opened");
|
||||
fRef = hsFopen(name, mode);
|
||||
fRef = plFileSystem::Open(name, mode);
|
||||
if (!fRef)
|
||||
return false;
|
||||
|
||||
@ -1247,20 +1232,13 @@ bool hsBufferedStream::Open(const char* name, const char* mode)
|
||||
#ifdef LOG_BUFFERED
|
||||
fBufferHits = fBufferMisses = 0;
|
||||
fBufferReadIn = fBufferReadOut = fReadDirect = fLastReadPos = 0;
|
||||
delete [] fFilename;
|
||||
fFilename = hsStrdup(name);
|
||||
fFilename = name;
|
||||
fCloseReason = nil;
|
||||
#endif // LOG_BUFFERED
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool hsBufferedStream::Open(const wchar_t *name, const wchar_t *mode)
|
||||
{
|
||||
hsAssert(0, "hsFileStream::Open NotImplemented for wchar_t");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool hsBufferedStream::Close()
|
||||
{
|
||||
int rtn = true;
|
||||
@ -1285,7 +1263,7 @@ bool hsBufferedStream::Close()
|
||||
wasted -= int((float(fBufferReadOut+fReadDirect) / float(fBufferReadIn+fReadDirect)) * 100.f);
|
||||
|
||||
s.WriteFmt("%s,%d,%d,%u,%u,%u,%d,%s\n",
|
||||
fFilename, fBufferHits, fBufferMisses, fBufferReadIn, fBufferReadOut, fReadDirect,
|
||||
fFilename.c_str(), fBufferHits, fBufferMisses, fBufferReadIn, fBufferReadOut, fReadDirect,
|
||||
wasted,
|
||||
fCloseReason ? fCloseReason : "Unknown");
|
||||
|
||||
|
@ -83,12 +83,7 @@ public:
|
||||
hsStream() : fBytesRead(0), fPosition(0) {}
|
||||
virtual ~hsStream() { }
|
||||
|
||||
// Pre-filename-stringification shortcut:
|
||||
bool Open_TEMP(const plFileName & filename, const char * mode = "rb")
|
||||
{ return Open(filename.AsString().c_str(), mode); }
|
||||
|
||||
virtual bool Open(const char *, const char * = "rb")=0;
|
||||
virtual bool Open(const wchar_t *, const wchar_t * = L"rb")=0;
|
||||
virtual bool Open(const plFileName &, const char * = "rb") = 0;
|
||||
virtual bool Close()=0;
|
||||
virtual bool AtEnd();
|
||||
virtual uint32_t Read(uint32_t byteCount, void * buffer) = 0;
|
||||
@ -300,8 +295,7 @@ class hsUNIXStream: public hsStream
|
||||
public:
|
||||
hsUNIXStream(): fRef(0), fBuff(nil) {}
|
||||
~hsUNIXStream();
|
||||
virtual bool Open(const char* name, const char* mode = "rb");
|
||||
virtual bool Open(const wchar_t *name, const wchar_t *mode = L"rb");
|
||||
virtual bool Open(const plFileName& name, const char* mode = "rb");
|
||||
virtual bool Close();
|
||||
|
||||
virtual bool AtEnd();
|
||||
@ -335,8 +329,7 @@ public:
|
||||
plReadOnlySubStream(): fBase( nil ), fOffset( 0 ), fLength( 0 ) {}
|
||||
~plReadOnlySubStream();
|
||||
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "plReadOnlySubStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "plReadOnlySubStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "plReadOnlySubStream::Open NotImplemented"); return false; }
|
||||
void Open( hsStream *base, uint32_t offset, uint32_t length );
|
||||
virtual bool Close() { fBase = nil; fOffset = 0; fLength = 0; return true; }
|
||||
virtual bool AtEnd();
|
||||
@ -358,8 +351,7 @@ public:
|
||||
hsRAMStream(uint32_t chunkSize);
|
||||
virtual ~hsRAMStream();
|
||||
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "hsRAMStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "hsRAMStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "hsRAMStream::Open NotImplemented"); return false; }
|
||||
virtual bool Close() { hsAssert(0, "hsRAMStream::Close NotImplemented"); return false; }
|
||||
|
||||
|
||||
@ -379,8 +371,7 @@ public:
|
||||
class hsNullStream : public hsStream {
|
||||
public:
|
||||
|
||||
virtual bool Open(const char *, const char *) { return true; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { return true; }
|
||||
virtual bool Open(const plFileName &, const char *) { return true; }
|
||||
virtual bool Close() { return true; }
|
||||
|
||||
virtual uint32_t Read(uint32_t byteCount, void * buffer); // throw's exception
|
||||
@ -404,8 +395,7 @@ public:
|
||||
hsReadOnlyStream() {}
|
||||
|
||||
virtual void Init(int size, const void* data) { fStart=((char*)data); fData=((char*)data); fStop=((char*)data + size); }
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "hsReadOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "hsReadOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "hsReadOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Close() { hsAssert(0, "hsReadOnlyStream::Close NotImplemented"); return false; }
|
||||
virtual bool AtEnd();
|
||||
virtual uint32_t Read(uint32_t byteCount, void * buffer);
|
||||
@ -424,8 +414,7 @@ public:
|
||||
hsWriteOnlyStream(int size, const void* data) : hsReadOnlyStream(size, data) {}
|
||||
hsWriteOnlyStream() {}
|
||||
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "hsWriteOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "hsWriteOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "hsWriteOnlyStream::Open NotImplemented"); return false; }
|
||||
virtual bool Close() { hsAssert(0, "hsWriteOnlyStream::Close NotImplemented"); return false; }
|
||||
virtual uint32_t Read(uint32_t byteCount, void * buffer); // throws exception
|
||||
virtual uint32_t Write(uint32_t byteCount, const void* buffer);
|
||||
@ -445,8 +434,7 @@ public:
|
||||
hsQueueStream(int32_t size);
|
||||
~hsQueueStream();
|
||||
|
||||
virtual bool Open(const char *, const char *) { hsAssert(0, "hsQueueStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const wchar_t *, const wchar_t *) { hsAssert(0, "hsQueueStream::Open NotImplemented"); return false; }
|
||||
virtual bool Open(const plFileName &, const char *) { hsAssert(0, "hsQueueStream::Open NotImplemented"); return false; }
|
||||
virtual bool Close() { hsAssert(0, "hsQueueStream::Close NotImplemented"); return false; }
|
||||
|
||||
virtual uint32_t Read(uint32_t byteCount, void * buffer);
|
||||
@ -480,16 +468,15 @@ class hsBufferedStream : public hsStream
|
||||
// For doing statistics on how efficient we are
|
||||
int fBufferHits, fBufferMisses;
|
||||
uint32_t fBufferReadIn, fBufferReadOut, fReadDirect, fLastReadPos;
|
||||
char* fFilename;
|
||||
plFileName fFilename;
|
||||
const char* fCloseReason;
|
||||
#endif
|
||||
|
||||
public:
|
||||
hsBufferedStream();
|
||||
virtual ~hsBufferedStream();
|
||||
virtual ~hsBufferedStream() { }
|
||||
|
||||
virtual bool Open(const char* name, const char* mode = "rb");
|
||||
virtual bool Open(const wchar_t* name, const wchar_t* mode = L"rb");
|
||||
virtual bool Open(const plFileName& name, const char* mode = "rb");
|
||||
virtual bool Close();
|
||||
|
||||
virtual bool AtEnd();
|
||||
|
@ -284,6 +284,14 @@ public:
|
||||
return str;
|
||||
}
|
||||
|
||||
/** Create a new plString object from the UTF-32 formatted data in \a utf32. */
|
||||
static inline plString FromUtf32(const UniChar *utf32, size_t size = kSizeAuto)
|
||||
{
|
||||
plString str;
|
||||
str.IConvertFromUtf32(utf32, size);
|
||||
return str;
|
||||
}
|
||||
|
||||
/** Create a new plString object from the ISO-8859-1 formatted data in \a astr. */
|
||||
static inline plString FromIso8859_1(const char *astr, size_t size = kSizeAuto)
|
||||
{
|
||||
|
Reference in New Issue
Block a user