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

TOutputObjectStream.hh

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

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