basestreaminterface.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           basestreaminterface.h  -  description
00003                              -------------------
00004     begin                : Sat Oct 14 2000
00005     copyright            : (C) 2000 by Martin Bickel
00006     email                : bickel@asc-hq.org
00007  ***************************************************************************/
00008 
00015 /***************************************************************************
00016  *                                                                         *
00017  *   This program is free software; you can redistribute it and/or modify  *
00018  *   it under the terms of the GNU General Public License as published by  *
00019  *   the Free Software Foundation; either version 2 of the License, or     *
00020  *   (at your option) any later version.                                   *
00021  *                                                                         *
00022  ***************************************************************************/
00023 
00024 #ifndef basestreaminterface_h_included
00025  #define basestreaminterface_h_included
00026 
00027 #include <bitset>
00028  #include "global.h"
00029 
00030  #include "ascstring.h"
00031 
00034  class tnstream {
00035         public:
00036            tnstream ( );
00037 
00039            enum IOMode { uninitialized, reading, writing, appending };
00040  
00045            virtual void writedata ( const void* buf, int size ) = 0 ;
00046 
00054            virtual int  readdata  ( void* buf, int size, bool excpt = true ) = 0 ;
00055 
00065            virtual void readpchar( char** pc, int maxlength = 0) ;
00066 
00076            virtual void readpnchar( char** pc, int maxlength = 0) ;
00077 
00085            virtual bool readTextString ( ASCString& s, bool includeCR = false ); 
00086 
00094            virtual ASCString readString ( bool includeCR = false );
00095 
00097            virtual void writepchar( const char* pc) ;
00098 
00104            virtual void writeString( const string& pc, bool binary = true ) ;
00105 
00107            virtual int  readInt  ( void );
00108 
00110            virtual int readWord ( void );
00111 
00113            virtual char readChar ( void );
00114 
00115            template<size_t N>
00116            void writeBitset( const std::bitset<N>& bs ) {
00117               writeInt(1);
00118               writeInt(N);
00119               for( int i = 0; i < N;++i)
00120                  writeChar( bs.test(i));
00121            }
00122 
00123            template<size_t N>
00124            void readBitset( std::bitset<N>& bs ) {
00125               readInt(); // version
00126               int n = readInt();
00127               assert( n == N );
00128               bs.reset();
00129               for( int i = 0; i < N;++i)
00130                  if ( readChar() )
00131                   bs.set( i );
00132            }
00133            
00134            
00136            virtual float readFloat ( void );
00137 
00139            virtual void writeInt  ( int  i );
00140            virtual void writeInt  ( unsigned int  i );
00141            void writeInt  ( bool b );
00142 
00143            #ifdef SIZE_T_not_identical_to_INT
00145            void writeInt  ( size_t i );
00146            #endif
00147 
00148 
00150            virtual void writeWord ( int w );
00151 
00153            virtual void writeChar ( char c );
00154 
00156            virtual void writeFloat ( float f );
00157 
00159            virtual void writerlepict ( const void* buf );
00160 
00162            virtual void writeImage ( const void* buf, bool compress = true );
00163 
00164 
00171            virtual void readrlepict( void** pnter, bool allocated, int* size);
00172 
00174            virtual ASCString getDeviceName();
00175 
00178            virtual ASCString getLocation();
00179            
00181            virtual ASCString getArchive();
00182 
00184            virtual void seek ( int newpos );
00185 
00187            virtual int getSize ( void ) { return -1; };
00188 
00189            virtual ~tnstream() {};
00190          protected:
00191            ASCString devicename; 
00192 };
00193 
00194 
00195 
00196 #endif // basestreaminterface_h_included

Generated on Mon May 21 01:26:28 2012 for Advanced Strategic Command by  doxygen 1.5.1