20 #pragma warning ( disable : 4786 )
21 #pragma warning ( disable : 4503 )
45 template<
class charT,
class traits =
char_traits<
charT> >
76 inline Self & operator[](
const char * cellname );
93 Self & operator<<(
const T& _arg )
95 return this->SendToTargets( _arg );
100 return this->SendToTargets( pf );
105 return this->SendToTargets( pf );
108 Self & operator<<( ios_base & (*pf)(ios_base &) )
110 return this->SendToTargets( pf );
113 virtual void WriteBufferedData(
void);
118 virtual int AddTargetCell(
const char * name, ostream_type * cell );
119 virtual int AddTargetCell(
const char * name, Self * cell );
121 virtual int RemoveTargetCell(
const char * name );
123 virtual void SetTargetCells(
const CStreamMapType & cellmap );
124 virtual void SetTargetCells(
const XStreamMapType & cellmap );
127 virtual int AddOutput(
const char * name, ostream_type * output );
128 virtual int AddOutput(
const char * name, Self * output );
129 virtual int RemoveOutput(
const char * name );
131 virtual void SetOutputs(
const CStreamMapType & outputmap );
132 virtual void SetOutputs(
const XStreamMapType & outputmap );
135 virtual const CStreamMapType & GetCOutputs(
void );
136 virtual const XStreamMapType & GetXOutputs(
void );
141 virtual Self & SelectXCell(
const char * name );
160 Self & SendToTargets(
const T & _arg )
162 Send<T>::ToTargets( const_cast<T &>(_arg), m_CTargetCells, m_XTargetCells );
177 static void ToTargets( T & _arg, CStreamMapType & CTargetCells, XStreamMapType & XTargetCells )
180 for ( CStreamMapIteratorType cit = CTargetCells.begin();
181 cit != CTargetCells.end(); ++cit )
183 *(cit->second) << _arg;
187 for ( XStreamMapIteratorType xit = XTargetCells.begin();
188 xit != XTargetCells.end(); ++xit )
190 *(xit->second) << _arg;
205 #include "xoutbase.hxx"
207 #endif // end #ifndef __xoutbase_h