34 #ifndef SOMAIO_DATASOURCE_DATASOURCE_H 35 #define SOMAIO_DATASOURCE_DATASOURCE_H 89 virtual bool isOpen()
const = 0;
90 virtual bool eof()
const;
92 virtual operator bool ()
const;
94 virtual void close() = 0;
96 virtual offset_t
size()
const = 0;
97 virtual offset_t
at()
const = 0;
98 virtual bool at( offset_t pos ) = 0;
99 virtual bool atEnd()
const;
101 virtual long readBlock(
char * data,
unsigned long maxlen ) = 0;
102 virtual long writeBlock(
const char * data,
unsigned long len ) = 0;
103 virtual int getch() = 0;
104 virtual int putch(
int ch ) = 0;
105 virtual bool ungetch(
int ch ) = 0;
107 virtual std::string
url()
const;
virtual DataSource * clone() const =0
static const carto::rc_ptr< DataSource > none()
An empty ref-counter that is more convenient than calling a constructor of rc_ptr<DataSource> (useful...
int mode() const
access mode(s) (read/write): bitwise OR of Mode values
virtual bool atEnd() const
virtual long writeBlock(const char *data, unsigned long len)=0
virtual std::string url() const
Abstraction layer for various data sources (file, buffer, socket...).
virtual offset_t size() const =0
virtual long readBlock(char *data, unsigned long maxlen)=0
virtual bool allowsMemoryMapping() const =0
virtual bool open(int mode)=0
virtual bool ungetch(int ch)=0
virtual bool operator!() const
unsigned long long offset_t
Offsets are 64 bits if supported.
virtual int putch(int ch)=0
virtual bool isOpen() const =0
virtual int iterateMode() const =0
possible iteration mode(s): bitwise OR of IterateMode values
virtual offset_t at() const =0