1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00
XFXFramework/include/System/IO/BinaryWriter.h

59 lines
1.6 KiB
C
Raw Permalink Normal View History

#ifndef _SYSTEM_IO_BINARYWRITER_
#define _SYSTEM_IO_BINARYWRITER_
#include <System/Interfaces.h>
#include "Stream.h"
namespace System
{
namespace IO
{
// Writes primitive types in binary to a stream and supports writing strings in a specific encoding.
class BinaryWriter : public IDisposable
{
private:
byte* _buffer;
byte* _largeByteBuffer;
int _maxChars;
char* _tmpOneCharBuffer;
static const int LargeByteBufferSize;
protected:
Stream* OutStream;
BinaryWriter();
virtual void Dispose(bool disposing);
void Write7BitEncodedInt(int value);
public:
static const BinaryWriter Null;
virtual Stream* BaseStream();
BinaryWriter(Stream* output);
virtual void Close();
void Dispose();
virtual void Flush();
virtual long long Seek(const int offset, const SeekOrigin_t origin);
virtual void Write(const bool value);
virtual void Write(const byte value);
virtual void Write(byte* value);
virtual void Write(const sbyte value);
virtual void Write(const char ch);
virtual void Write(const double value);
virtual void Write(const short value);
virtual void Write(const int value);
virtual void Write(const long long value);
virtual void Write(const float value);
virtual void Write(const String value);
virtual void Write(const ushort value);
virtual void Write(const uint value);
virtual void Write(const ulong value);
virtual void Write(byte* buffer, const int index, const int count);
virtual void Write(char chars[], const int index, const int count);
};
}
}
#endif //_SYSTEM_IO_BINARYWRITER_