DCL 4.0
Loading...
Searching...
No Matches
OutputStreamWriter Class Reference

#include <OutputStreamWriter.h>

Inheritance diagram for OutputStreamWriter:
Writer Object FileWriter XOutputStreamWriter XFileWriter

Public Member Functions

virtual String toString () const
 OutputStreamWriter (OutputStream &__noclose__ _output, CharsetEncoder &_encoder)
 OutputStreamWriter (OutputStream *__destroy__ _pOutput, CharsetEncoder *__destroy__ _pEncoder=NULL)
virtual ~OutputStreamWriter ()
virtual void close () __DCL_THROWS1(IOException *)
virtual void flush () __DCL_THROWS1(IOException *)
virtual Writerwrite (const wchar_t *_buf, size_t _n) __DCL_THROWS1(IOException *)
Public Member Functions inherited from Object
virtual void destroy ()
String className () const
bool isInstanceOf (const std::type_info &typeinfo) const
virtual const std::type_info & typeInfo () const

Protected Attributes

OutputStream__output
CharsetEncoder__encoder
bool __closeDestroy

Additional Inherited Members

Protected Member Functions inherited from Object
virtual ~Object ()
 Object ()

Detailed Description

Definition at line 25 of file OutputStreamWriter.h.

Constructor & Destructor Documentation

◆ OutputStreamWriter() [1/2]

OutputStreamWriter::OutputStreamWriter ( OutputStream &__noclose__ _output,
CharsetEncoder & _encoder )

참조된 스트림과 엔코더로 객체를 구성한다. _output과 _encoder는 객체의 생면주기동안 유효해야 하며, _output은 close()에서 close하지 않는다.

Parameters
_outputA OutputStream
_decoderA CharsetEncoder

◆ OutputStreamWriter() [2/2]

OutputStreamWriter::OutputStreamWriter ( OutputStream *__destroy__ _pOutput,
CharsetEncoder *__destroy__ _pEncoder = NULL )

넘겨받은 스트림과 디코더로 객체를 구성한다. close()에서 _pOutput의 close()가 호출되고 _pOutput과 _pEncoder는 파괴된다.

Parameters
_pOutputA OutputStream
_pEncoderNULL이면 LocaleEncoder를 사용한다.

◆ ~OutputStreamWriter()

OutputStreamWriter::~OutputStreamWriter ( )
virtual

객체의 파괴를 수행한다. close하지 않았으면 close()하며 예외가 발생하면 무시한다.

Definition at line 74 of file OutputStreamWriter.cpp.

75{
76 if (__output)
77 {
78 try
79 {
80 close();
81 }
82 catch (Exception* cause)
83 {
84 __DCL_TRACE1(__T("%ls\n"), cause->toString().data());
85 cause->destroy();
86 }
87 }
88}
#define __DCL_TRACE1(fmt, arg1)
Definition Object.h:376
#define __T(str)
Definition Object.h:44
virtual String toString() const
Definition Exception.cpp:40
virtual void destroy()
Definition Exception.cpp:74
virtual void close() __DCL_THROWS1(IOException *)

Member Function Documentation

◆ close()

void OutputStreamWriter::close ( )
virtual

객체를 닫는다. 넘겨받은 OutputStream과 CharsetEncoder는 파괴된다.

Definition at line 90 of file OutputStreamWriter.cpp.

92{
94
95 Exception* e = NULL;
96 OutputStream* output = __output;
97 CharsetEncoder* encoder = __encoder;
98 __output = NULL;
100
101 if (__closeDestroy)
102 {
103 if (encoder)
104 encoder->destroy();
105
106 try
107 {
108 output->close();
109 }
110 catch (Exception* cause)
111 {
112 e = cause;
113 }
114 output->destroy();
115 }
116
117 if (e)
118 throw e;
119}
#define NULL
Definition Config.h:340
#define __DCL_ASSERT_HANDLE(expr)
Definition Object.h:383
virtual void destroy()
Definition Object.cpp:192
CharsetEncoder * __encoder

◆ flush()

void OutputStreamWriter::flush ( )
virtual

사용하고 있는 OutputStream의 flush를 호출한다.

Reimplemented from Writer.

Definition at line 121 of file OutputStreamWriter.cpp.

123{
125
126 __output->flush();
127}

◆ toString()

virtual String OutputStreamWriter::toString ( ) const
virtual

파생클래스를 위한 생성자이다. 객체의 구성에 대하여 간략한 요약을 리턴한다.

Reimplemented from Object.

◆ write()

Writer & OutputStreamWriter::write ( const wchar_t * _buf,
size_t _n )
virtual

텍스트를 출력한다.

Parameters
_buf버퍼
_n버퍼의 크기가 _n개의 wchar_t 문자
Returns
Writer&

Implements Writer.

Definition at line 129 of file OutputStreamWriter.cpp.

131{
133 __DCL_ASSERT_PARAM(_buf != NULL);
134
136
137 const wchar_t* pCur = _buf;
138 const wchar_t* pEnd = _buf + _n;
139 byte_t aOutBuf[512];
140 size_t nInCount;
141
142 while ((nInCount = pEnd - pCur) > 0)
143 {
144 size_t nOutCount = __countof(aOutBuf, byte_t);
145 int r = __encoder->encode(pCur, nInCount, aOutBuf, nOutCount);
146 if (r != CS_NOERROR)
147 throw (new IOException(toString(), new CharsetConvertException(r)));
148 __output->write(aOutBuf, nOutCount);
149 pCur += nInCount;
150 }
151
152 return *this;
153}
@ CS_NOERROR
Definition Charset.h:61
#define __countof(array, type)
Definition Config.h:365
unsigned char byte_t
Definition Config.h:274
#define __DCL_ASSERT_PARAM(expr)
Definition Object.h:384
#define __DCL_ASSERT(expr)
Definition Object.h:371
ByteString r
virtual String toString() const

Member Data Documentation

◆ __closeDestroy

bool OutputStreamWriter::__closeDestroy
protected

Definition at line 103 of file OutputStreamWriter.h.

◆ __encoder

CharsetEncoder* OutputStreamWriter::__encoder
protected

Definition at line 102 of file OutputStreamWriter.h.

◆ __output

OutputStream* OutputStreamWriter::__output
protected

Definition at line 101 of file OutputStreamWriter.h.


The documentation for this class was generated from the following files: