This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/fusion360/usr/Include/Core/Common/Stream.h
2022-10-15 19:16:08 +02:00

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