/******************************************************** * StreamWriter.h * * * * XFX StreamWriter definition file * * Copyright © 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 { /// /// Implements a TextWriter for writing characters to a stream in a particular encoding. /// 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_