Overview   Project   Class   Tree   Deprecated   Index 
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD

dcl
Class XWriter

Object
   |
   +--Writer
         |
         +--XWriter

   in XWriter.h

class XWriter
extends Writer

Writer 인터페이스의 다중스레드 동기화를 제공한다.

동기화는 Writer의 기본 메소드인 close(), flush(), write(const wchar_t* _buf, size_t _n), vprintf(const wchar_t* _format, va_list _arglist) 이다.

이들 메소드는 다음과 같이 구현되어 있다.

Writer& XWriter::write(const wchar_t* _buf, size_t _n)
{
   if (__writer)
   {
      Thread::SingleLockMutex lockAndUnlock(__lock);
      __writer->write(_buf, _n);
   }
   return *this;
}

Author:
Daejung Kim
Since:
DCL Version 3.0
See Also:
Writer

Field Summary
protected Thread::Mutex __lock
          
protected Writer* __writer
          
 
Constructor Summary
XWriter( Writer* __destroy__ _pWriter )
          객체를 구성한다.
virtual ~XWriter()
          객체의 파괴를 수행한다.
 
Method Summary
 virtual void close()
          설정된 Writer 객체를 닫고, 파괴(destroy)한다.
 virtual void flush()
          설정된 Writer의 flush()를 호출한다.
 Writer* setWriter( Writer* __destroy__ _pWriter )
          출력 Writer 객체를 설정한다.
 virtual String toString() const
          객체의 구성에 대하여 간략한 요약을 반환한다.
 virtual size_t vprintf( const wchar_t* _format, va_list _arglist )
          형식화된 문자열을 출력한다.
 virtual Writer& write( const wchar_t* _buf, size_t _n )
          _n개의 wchar_t 문자를 쓴다(write).
   
Methods inherited from class Writer
close, flush, write, vprintf, printf
   
Methods inherited from class Object
toString, destroy, className, isInstanceOf, typeInfo
 

Field Detail

__lock

protected Thread::Mutex __lock;

__writer

protected Writer* __writer;


Constructor Detail

XWriter

public XWriter( Writer* __destroy__ _pWriter );
객체를 구성한다.
Parameters:
_pWriter - 동기화할 Writer의 인스턴스이다. NULL 이면, close(), flush(), write(const wchar_t* _buf, size_t _n), vprintf(const wchar_t* _format, va_list _arglist) 는 아무런 행위를 하지 않는다.

~XWriter

public virtual ~XWriter();
객체의 파괴를 수행한다. close()를 호출한다.


Method Detail

close

public virtual void close() throw( IOException* );
설정된 Writer 객체를 닫고, 파괴(destroy)한다.

flush

public virtual void flush() throw( IOException* );
설정된 Writer의 flush()를 호출한다.

setWriter

public Writer* setWriter( Writer* __destroy__ _pWriter );
출력 Writer 객체를 설정한다.
Parameters:
_pWriter - 동기화할 Writer의 인스턴스이다. NULL 이면, close(), flush(), write(const wchar_t* _buf, size_t _n), vprintf(const wchar_t* _format, va_list _arglist) 는 아무런 행위를 하지 않는다.
Returns:
이전에 설정한 Writer를 반환한다.

toString

public virtual String toString() const;
객체의 구성에 대하여 간략한 요약을 반환한다.

vprintf

public virtual size_t vprintf( const wchar_t* _format, va_list _arglist ) throw( IOException* );
형식화된 문자열을 출력한다.
Parameters:
_format - 포멧 문자열
_arglist - 아귀먼트 리스트
Returns:
출력된 총 문자의 개수를 반환한다.

write

public virtual Writer& write( const wchar_t* _buf, size_t _n ) throw( IOException* );
_n개의 wchar_t 문자를 쓴다(write).

파생클래스는 _n개의 wchar_t 문자를 write하는 것에 대하여 보장하도록 구현해야 한다.

Parameters:
_buf - 버퍼
_n - 버퍼의 wchar_t 문자개수가 _n개
Returns:
Writer&

 Overview   Project   Class   Tree   Deprecated   Index 
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD