34 #ifndef SOMAIO_READER_ITEMREADER_H 
   35 #define SOMAIO_READER_ITEMREADER_H 
   91                                    bool bswap = 
false ) 
const = 0;
 
  104   template <
typename T>
 
  112                                    bool bswap = 
false ) 
const;
 
  114     virtual long read( 
DataSource & ds, T* pitem, 
size_t n = 1 ) 
const;
 
  118   template <
typename T>
 
  125     virtual long read( 
DataSource & ds, T* pitem, 
size_t n = 1 ) 
const;
 
  130   template <
typename T>
 
  137     virtual long read( 
DataSource & ds, T* pitem, 
size_t n = 1 ) 
const;
 
  145   template <
typename T>
 
  179   template <
typename T>
 
  185     long        len = ds.
readBlock( 
reinterpret_cast<char*
>( pitem ),
 
  187     return len / 
sizeof(T);
 
  191   template <
typename T>
 
  197     long        len = ds.
readBlock( 
reinterpret_cast<char*
>( pitem ), n * 
sizeof(T) );
 
  198     uint8_t     *ptr = 
reinterpret_cast<uint8_t*
>( pitem );
 
  199     for( 
long k=0; k<len; k+=
sizeof(T) )
 
  200       for( 
size_t b=0; b<
sizeof(T)/2; ++b )
 
  201         std::swap( ptr[k+b], ptr[k+
sizeof(T)-1-b] );
 
  202     return len / 
sizeof(T);
 
  206   template <
typename T>
 
  215     for( i=0; i<n; ++i, ++ptr )
 
  222         while( ( c == 
' ' || c == 
'\t' || c == 
'\n' || c == 
'\r' || c == 
',' ) 
 
  227         if( !readOne( ds, ptr ) )
 
  234   template <
typename T>
 
static bool read(DataSource &ds, T &item)
Abstraction layer for various data sources (file, buffer, socket...).
virtual bool ungetch(int ch)=0
virtual long readBlock(char *data, unsigned long maxlen)=0
virtual bool isOpen() const =0
virtual ~DefaultAsciiItemReader()
virtual long read(DataSource &ds, T *pitem, size_t n=1) const
Reading on an arbitrary DataSource.
bool readOne(DataSource &ds, T *pitem) const
virtual ~DefaultBSwapItemReader()
virtual long read(DataSource &ds, T *pitem, size_t n=1) const
Reading on an arbitrary DataSource.
Default low-levels readers.
virtual ItemReader< T > * reader(bool binary=true, bool bswap=false) const
Factory function.
virtual ~DefaultItemReader()
virtual long read(DataSource &ds, T *pitem, size_t n=1) const
Reading on an arbitrary DataSource.
Low-level "small item" reader, used by higher-level file readers.
virtual ItemReader< T > * reader(bool binary=true, bool bswap=false) const =0
Factory function.
virtual long read(DataSource &ds, T *pitem, size_t n=1) const =0
Reading on an arbitrary DataSource.