00001 // ===================================================================== 00002 // $Id: TInputObjectStream.hh,v 1.1.1.1 2003/06/27 02:56:41 goiwai Exp $ 00003 // $Name: CLDAQ-1-06-02 $ 00004 // ===================================================================== 00005 #ifndef __TINPUTOBJECTSTREAM_HH 00006 #define __TINPUTOBJECTSTREAM_HH 00007 00008 #include "Tglobals.h" 00009 #include "TObjectStream.hh" 00010 00011 class TStreamableObject; 00012 class TObjectFilter; 00013 00014 class TInputObjectStream 00015 : public TObjectStream 00016 { 00017 00018 public: 00019 TInputObjectStream( Tstream_t streamtype = tUnknownStream ); 00020 TInputObjectStream( TObjectFilter* filter, Tstream_t streamtype = tUnknownStream ); 00021 00022 protected: 00023 virtual ~TInputObjectStream(); 00024 00025 public: 00026 virtual Tint Read( TStreamableObject& object ) = 0; 00027 friend Tint operator>>( TInputObjectStream& left, TStreamableObject& object ); 00028 friend Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ); 00029 00030 }; 00031 00032 inline Tint operator>>( TInputObjectStream& left, TStreamableObject& object ) 00033 { 00034 return( left.Read( object ) ); 00035 } 00036 00037 inline Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ) 00038 { 00039 return( left.Read( *(TStreamableObject*)(&object) ) ); 00040 } 00041 00042 #endif