00001 // ===================================================================== 00025 // ===================================================================== 00026 #ifndef __TINPUTOBJECTSTREAM_HH 00027 #define __TINPUTOBJECTSTREAM_HH 00028 00029 #include "Tglobals.h" 00030 #include "TObjectStream.hh" 00031 00032 class TStreamableObject; 00033 class TObjectFilter; 00034 00035 00055 class TInputObjectStream 00056 : public TObjectStream 00057 { 00058 00059 public: 00060 TInputObjectStream( Tstream_t streamtype = tUnknownStream ); 00061 TInputObjectStream( TObjectFilter* filter, Tstream_t streamtype = tUnknownStream ); 00062 virtual ~TInputObjectStream(); 00063 00064 public: 00065 virtual Tint Read( TStreamableObject& object ) = 0; 00066 friend Tint operator>>( TInputObjectStream& left, TStreamableObject& object ); 00067 friend Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ); 00068 00069 }; 00070 00071 inline Tint operator>>( TInputObjectStream& left, TStreamableObject& object ) 00072 { 00073 return left.Read( object ); 00074 } 00075 00076 inline Tint operator>>( TInputObjectStream& left, const TStreamableObject& object ) 00077 { 00078 return left.Read( *(TStreamableObject*)(&object) ); 00079 } 00080 00081 #endif