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

70 lines
1.7 KiB
C
Raw Normal View History

/********************************************************
* StreamWriter.h *
* *
* XFX StreamWriter definition file *
* Copyright <EFBFBD> XFX Team. All Rights Reserved *
********************************************************/
#ifndef _SYSTEM_IO_STREAMWRITER_
#define _SYSTEM_IO_STREAMWRITER_
#include "../Text/Encoding.h"
#include "../Text/Encoder.h"
#include "Stream.h"
#include "TextWriter.h"
#include "../Types.h"
using namespace System::Text;
namespace System
{
class String;
namespace IO
{
/// <summary>
/// Implements a TextWriter for writing characters to a stream in a particular encoding.
/// </summary>
class StreamWriter : public TextWriter
{
private:
byte byteBuffer;
char charBuffer[];
int charLen;
int charPos;
bool closable;
Encoder encoder;
Encoding encoding;
bool haveWrittenPreamble;
Stream stream;
void Flush(bool flushStream, bool flushEncoder);
protected:
void Dispose(bool disposing);
public:
bool AutoFlush;
virtual Stream BaseStream();
Encoding Encoding_();
static const StreamWriter Null;
StreamWriter(const char* path);
StreamWriter(const char* path, bool append);
StreamWriter(const char* path, bool append, Encoding encoding);
StreamWriter(const char* path, bool append, Encoding encoding, int bufferSize);
StreamWriter(Stream stream);
StreamWriter(Stream stream, Encoding encoding);
StreamWriter(Stream stream, Encoding encoding, int bufferSize);
void Close();
void Flush();
void Write(char value);
void Write(char buffer[]);
void Write(char buffer[], int index, int count);
void Write(const char* value);
};
}
}
#endif //_SYSTEM_IO_STREAMWRITER_