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.