COMMON: Changed DumpFile & StdIOStream to derive from SeekableWriteStream
This commit is contained in:
parent
f4dacdf34d
commit
b821e8fce4
3 changed files with 27 additions and 14 deletions
|
@ -28,7 +28,7 @@
|
|||
#include "common/stream.h"
|
||||
#include "common/str.h"
|
||||
|
||||
class StdioStream : public Common::SeekableReadStream, public Common::WriteStream, public Common::NonCopyable {
|
||||
class StdioStream : public Common::SeekableReadStream, public Common::SeekableWriteStream, public Common::NonCopyable {
|
||||
protected:
|
||||
/** File handle to the actual file. */
|
||||
void *_handle;
|
||||
|
@ -43,17 +43,17 @@ public:
|
|||
StdioStream(void *handle);
|
||||
virtual ~StdioStream();
|
||||
|
||||
virtual bool err() const;
|
||||
virtual void clearErr();
|
||||
virtual bool eos() const;
|
||||
virtual bool err() const override;
|
||||
virtual void clearErr() override;
|
||||
virtual bool eos() const override;
|
||||
|
||||
virtual uint32 write(const void *dataPtr, uint32 dataSize);
|
||||
virtual bool flush();
|
||||
virtual uint32 write(const void *dataPtr, uint32 dataSize) override;
|
||||
virtual bool flush() override;
|
||||
|
||||
virtual int32 pos() const;
|
||||
virtual int32 size() const;
|
||||
virtual bool seek(int32 offs, int whence = SEEK_SET);
|
||||
virtual uint32 read(void *dataPtr, uint32 dataSize);
|
||||
virtual int32 pos() const override;
|
||||
virtual int32 size() const override;
|
||||
virtual bool seek(int32 offs, int whence = SEEK_SET) override;
|
||||
virtual uint32 read(void *dataPtr, uint32 dataSize) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -219,4 +219,14 @@ bool DumpFile::flush() {
|
|||
|
||||
int32 DumpFile::pos() const { return _handle->pos(); }
|
||||
|
||||
bool DumpFile::seek(int32 offset, int whence) {
|
||||
SeekableWriteStream *ws = dynamic_cast<SeekableWriteStream *>(_handle);
|
||||
return ws ? ws->seek(offset, whence) : -1;
|
||||
}
|
||||
|
||||
int32 DumpFile::size() const {
|
||||
SeekableWriteStream *ws = dynamic_cast<SeekableWriteStream *>(_handle);
|
||||
return ws ? ws->size() : -1;
|
||||
}
|
||||
|
||||
} // End of namespace Common
|
||||
|
|
|
@ -134,7 +134,7 @@ public:
|
|||
* Some design ideas:
|
||||
* - automatically drop all files into dumps/ dir? Might not be desired in all cases
|
||||
*/
|
||||
class DumpFile : public WriteStream, public NonCopyable {
|
||||
class DumpFile : public SeekableWriteStream, public NonCopyable {
|
||||
protected:
|
||||
/** File handle to the actual file; 0 if no file is open. */
|
||||
WriteStream *_handle;
|
||||
|
@ -158,11 +158,14 @@ public:
|
|||
bool err() const;
|
||||
void clearErr();
|
||||
|
||||
virtual uint32 write(const void *dataPtr, uint32 dataSize);
|
||||
virtual uint32 write(const void *dataPtr, uint32 dataSize) override;
|
||||
|
||||
virtual bool flush();
|
||||
virtual bool flush() override;
|
||||
|
||||
virtual int32 pos() const;
|
||||
virtual int32 pos() const override;
|
||||
|
||||
virtual bool seek(int32 offset, int whence = SEEK_SET) override;
|
||||
virtual int32 size() const override;
|
||||
};
|
||||
|
||||
} // End of namespace Common
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue