34 #ifndef SOMAIO_DATASOURCE_STREAMDATASOURCE_H 
   35 #define SOMAIO_DATASOURCE_STREAMDATASOURCE_H 
   58                       const std::string & 
url = std::string() );
 
   61                       const std::string & 
url = std::string() );
 
   65     virtual std::string 
url() 
const;
 
   71     virtual bool eof() 
const;
 
   78     virtual long readBlock( 
char* data, 
unsigned long maxlen );
 
   79     virtual long writeBlock( 
const char* data, 
unsigned long len );
 
   86     std::iostream               *_stream;
 
  100                        const std::string & 
url = std::string() );
 
  103                        const std::string & 
url = std::string() );
 
  107     virtual std::string 
url() 
const;
 
  120     virtual long readBlock( 
char* data, 
unsigned long maxlen );
 
  122     virtual long writeBlock( 
const char* data, 
unsigned long len );
 
  130     std::istream                *_stream;
 
  144                        const std::string & 
url = std::string() );
 
  147                        const std::string & 
url = std::string() );
 
  151     virtual std::string 
url() 
const;
 
  165     virtual long readBlock( 
char* data, 
unsigned long maxlen );
 
  166     virtual long writeBlock( 
const char* data, 
unsigned long len );
 
  175     std::ostream                *_stream;
 
Abstraction layer for various data sources (file, buffer, socket...).
int mode() const
access mode(s) (read/write): bitwise OR of Mode values
DataSource on a std::istream (read-only stream)
virtual std::string url() const
virtual bool ungetch(int ch)
virtual bool isOpen() const
IStreamDataSource(std::istream &, const std::string &url=std::string())
Using an existing, external stream.
virtual long readBlock(char *data, unsigned long maxlen)
IStreamDataSource(carto::rc_ptr< std::istream >, const std::string &url=std::string())
Using a ref-counter to a stream.
virtual int iterateMode() const
possible iteration mode(s): bitwise OR of IterateMode values
virtual long writeBlock(const char *data, unsigned long len)
always fails
virtual bool at(offset_t pos)
virtual int putch(int ch)
always fails
virtual DataSource * clone() const
virtual bool operator!() const
virtual offset_t at() const
virtual bool allowsMemoryMapping() const
virtual ~IStreamDataSource()
virtual bool open(int mode)
virtual offset_t size() const
always returns 0
DataSource on a std::ostream (write-only stream)
virtual bool at(offset_t pos)
virtual int putch(int ch)
virtual DataSource * clone() const
virtual int iterateMode() const
possible iteration mode(s): bitwise OR of IterateMode values
virtual ~OStreamDataSource()
virtual bool ungetch(int ch)
always fails
virtual long readBlock(char *data, unsigned long maxlen)
always fails
virtual bool allowsMemoryMapping() const
virtual offset_t at() const
virtual std::string url() const
virtual bool operator!() const
OStreamDataSource(std::ostream &, const std::string &url=std::string())
Using an existing, external stream.
virtual bool open(int mode)
OStreamDataSource(carto::rc_ptr< std::ostream >, const std::string &url=std::string())
Using a ref-counter to a stream.
virtual bool isOpen() const
virtual int getch()
always fails
virtual offset_t size() const
always returns 0
virtual long writeBlock(const char *data, unsigned long len)
DataSource on a std::iostream (read/write stream)
virtual DataSource * clone() const
virtual long writeBlock(const char *data, unsigned long len)
StreamDataSource(carto::rc_ptr< std::iostream >, const std::string &url=std::string())
Using a ref-counter to a stream.
virtual bool isOpen() const
virtual ~StreamDataSource()
virtual bool operator!() const
virtual long readBlock(char *data, unsigned long maxlen)
virtual bool ungetch(int ch)
virtual int putch(int ch)
StreamDataSource(std::iostream &, const std::string &url=std::string())
Using an existing, external stream.
virtual int iterateMode() const
possible iteration mode(s): bitwise OR of IterateMode values
virtual offset_t at() const
virtual bool allowsMemoryMapping() const
virtual std::string url() const
virtual bool open(int mode)
virtual offset_t size() const
always returns 0
virtual bool at(offset_t pos)
unsigned long long offset_t
Offsets are 64 bits if supported.