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

TInputObjectStream.hh

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

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