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