メインページ   モジュール   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   構成メンバ   ファイルメンバ   関連ページ    

TOutputObjectStream.hh

解説を見る。
00001 // =====================================================================
00036 // =====================================================================
00037 #ifndef CLDAQ__TOUTPUTOBJECTSTREAM_HH
00038 #define CLDAQ__TOUTPUTOBJECTSTREAM_HH
00039 
00040 #include "Tglobals.h"
00041 #include "TObjectStream.hh"
00042 
00043 class TStreamableObject;
00044 class TOutputObjectFilter;
00045 
00046 
00066 class TOutputObjectStream
00067   : public TObjectStream
00068 {
00069 
00070   protected:
00071     TOutputObjectFilter* theObjectFilter;
00072 
00073   public:
00074     TOutputObjectStream( Tstream_t streamtype = tUnknownStream );
00075     TOutputObjectStream( TOutputObjectFilter* filter, Tstream_t streamtype = tUnknownStream );
00076 
00077   protected:
00078     virtual ~TOutputObjectStream();
00079 
00080   public:
00081     TOutputObjectFilter* GetObjectFilter() const;
00082     Tvoid SetObjectFilter( TOutputObjectFilter* filter );
00083     Tbool HasFilter() const;
00084 
00085   public:
00086     virtual Tint Write( TStreamableObject& object ) = 0;
00087     friend Tint operator<<( TOutputObjectStream& left, TStreamableObject& object );
00088     friend Tint operator<<( TOutputObjectStream& left, const TStreamableObject& object );
00089 
00090 #ifdef __CLDAQ_ROOT_DLL
00091     ClassDef(TOutputObjectStream,0)
00092 #endif
00093 
00094 };
00095 
00096 inline Tint operator<<( TOutputObjectStream& left, TStreamableObject& object )
00097 {
00098   return left.Write( object );
00099 }
00100 
00101 inline Tint operator<<( TOutputObjectStream& left, const TStreamableObject& object )
00102 {
00103   return left.Write( *(TStreamableObject*)(&object) );
00104 }
00105 
00106 inline TOutputObjectFilter* TOutputObjectStream::GetObjectFilter() const
00107 {
00108   return theObjectFilter;
00109 }
00110 
00111 inline Tvoid TOutputObjectStream::SetObjectFilter( TOutputObjectFilter* filter )
00112 {
00113   theObjectFilter = filter;
00114   return;
00115 }
00116 
00117 inline Tbool TOutputObjectStream::HasFilter() const
00118 {
00119   return ( theObjectFilter != 0 ) ? Ttrue : Tfalse;
00120 }
00121 
00122 #endif

CLDAQ - a Class Library for Data AcQuisition (Version 1.13.0)
Go IWAI <goiwai@users.sourceforge.jp>