SIS
Symmetric Index Structures
|
00001 #ifndef VOIDSEQUENCEADAPTERBASE_HPP 00002 #define VOIDSEQUENCEADAPTERBASE_HPP 00003 00004 #include "../cppbase.hpp" 00005 #include "../../../../bas/lml/voidSequence.h" 00006 00007 #include <istream> 00008 #include <ostream> 00009 #include <fstream> 00010 00011 namespace lmu { namespace cis { namespace sis { 00012 00024 class VoidSequenceAdapterBase { 00025 public: 00040 00042 friend std::ostream& operator<<( std::ostream& out, const VoidSequenceAdapterBase& Base) { 00043 Base.Print( out ); 00044 return out; 00045 } 00046 00048 friend std::istream& operator>>( std::istream& in, VoidSequenceAdapterBase& Base) { 00049 Base.ReadAll( in ); 00050 return in; 00051 } 00052 00054 friend std::istream& operator>( std::ifstream& in, VoidSequenceAdapterBase& Base) { 00055 Base.ReadOne( in ); 00056 return in; 00057 } 00059 00060 00061 protected: 00072 virtual void Print( std::ostream& ) const = 0; 00073 virtual void ReadAll( std::istream& ) = 0; 00074 virtual void ReadOne( std::ifstream& ) = 0; 00075 00077 }; 00078 00079 }}} /* End of namespace lmu::cis::sis */ 00080 00081 #endif /* end of include guard: VOIDSEQUENCEADAPTERBASE_HPP */