SIS
Symmetric Index Structures
/Users/dbr/ma/src/lmu/cis/sis/adapter/VoidSequenceAdapterBase.hpp
Go to the documentation of this file.
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 */