79 lines
2.6 KiB
C++
79 lines
2.6 KiB
C++
#ifndef STREAM_H
|
|
#define STREAM_H
|
|
|
|
#include "NxStream.h"
|
|
|
|
class UserStream : public NxStream
|
|
{
|
|
public:
|
|
UserStream(const char* filename, bool load);
|
|
virtual ~UserStream();
|
|
|
|
virtual NxU8 readByte() const;
|
|
virtual NxU16 readWord() const;
|
|
virtual NxU32 readDword() const;
|
|
virtual float readFloat() const;
|
|
virtual double readDouble() const;
|
|
virtual void readBuffer(void* buffer, NxU32 size) const;
|
|
|
|
virtual NxStream& storeByte(NxU8 b);
|
|
virtual NxStream& storeWord(NxU16 w);
|
|
virtual NxStream& storeDword(NxU32 d);
|
|
virtual NxStream& storeFloat(NxReal f);
|
|
virtual NxStream& storeDouble(NxF64 f);
|
|
virtual NxStream& storeBuffer(const void* buffer, NxU32 size);
|
|
|
|
FILE* fp;
|
|
};
|
|
|
|
class MemoryWriteBuffer : public NxStream
|
|
{
|
|
public:
|
|
MemoryWriteBuffer();
|
|
virtual ~MemoryWriteBuffer();
|
|
void clear();
|
|
|
|
virtual NxU8 readByte() const { NX_ASSERT(0); return 0; }
|
|
virtual NxU16 readWord() const { NX_ASSERT(0); return 0; }
|
|
virtual NxU32 readDword() const { NX_ASSERT(0); return 0; }
|
|
virtual float readFloat() const { NX_ASSERT(0); return 0.0f;}
|
|
virtual double readDouble() const { NX_ASSERT(0); return 0.0; }
|
|
virtual void readBuffer(void* buffer, NxU32 size) const { NX_ASSERT(0); }
|
|
|
|
virtual NxStream& storeByte(NxU8 b);
|
|
virtual NxStream& storeWord(NxU16 w);
|
|
virtual NxStream& storeDword(NxU32 d);
|
|
virtual NxStream& storeFloat(NxReal f);
|
|
virtual NxStream& storeDouble(NxF64 f);
|
|
virtual NxStream& storeBuffer(const void* buffer, NxU32 size);
|
|
|
|
NxU32 currentSize;
|
|
NxU32 maxSize;
|
|
NxU8* data;
|
|
};
|
|
|
|
class MemoryReadBuffer : public NxStream
|
|
{
|
|
public:
|
|
MemoryReadBuffer(const NxU8* data);
|
|
virtual ~MemoryReadBuffer();
|
|
|
|
virtual NxU8 readByte() const;
|
|
virtual NxU16 readWord() const;
|
|
virtual NxU32 readDword() const;
|
|
virtual float readFloat() const;
|
|
virtual double readDouble() const;
|
|
virtual void readBuffer(void* buffer, NxU32 size) const;
|
|
|
|
virtual NxStream& storeByte(NxU8 b) { NX_ASSERT(0); return *this; }
|
|
virtual NxStream& storeWord(NxU16 w) { NX_ASSERT(0); return *this; }
|
|
virtual NxStream& storeDword(NxU32 d) { NX_ASSERT(0); return *this; }
|
|
virtual NxStream& storeFloat(NxReal f) { NX_ASSERT(0); return *this; }
|
|
virtual NxStream& storeDouble(NxF64 f) { NX_ASSERT(0); return *this; }
|
|
virtual NxStream& storeBuffer(const void* buffer, NxU32 size) { NX_ASSERT(0); return *this; }
|
|
|
|
mutable const NxU8* buffer;
|
|
};
|
|
|
|
#endif
|