00001 // ===================================================================== 00002 // $Id: TInputObjectStream.hh,v 1.2 2003/07/30 16:19:30 goiwai Exp $ 00003 // $Name: CLDAQ-1-08-00 $ 00004 // 00005 // $Log: TInputObjectStream.hh,v $ 00006 // Revision 1.2 2003/07/30 16:19:30 goiwai 00007 // ファイルにコミットログをつけることにしました. 00008 // 00009 // ===================================================================== 00010 #ifndef __TINPUTOBJECTSTREAM_HH 00011 #define __TINPUTOBJECTSTREAM_HH 00012 00013 #include "Tglobals.h" 00014 #include "TObjectStream.hh" 00015 00016 class TStreamableObject; 00017 class TObjectFilter; 00018 00019 class TInputObjectStream 00020 : public TObjectStream 00021 { 00022 00023 public: 00024 TInputObjectStream( Tstream_t streamtype = tUnknownStream ); 00025 TInputObjectStream( TObjectFilter* filter, Tstream_t streamtype = tUnknownStream ); 00026 00027 protected: 00028 virtual ~TInputObjectStream(); 00029 00030 public: 00031 virtual Tint Read( TStreamableObject& object ) = 0; 00032 friend Tint operator>>( TInputObjectStream& left, TStreamableObject& object ); 00033 friend Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ); 00034 00035 }; 00036 00037 inline Tint operator>>( TInputObjectStream& left, TStreamableObject& object ) 00038 { 00039 return( left.Read( object ) ); 00040 } 00041 00042 inline Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ) 00043 { 00044 return( left.Read( *(TStreamableObject*)(&object) ) ); 00045 } 00046 00047 #endif