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;
70 virtual bool isOpen()
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 );
81 virtual int putch(
int ch );
86 std::iostream *_stream;
100 const std::string &
url = std::string() );
103 const std::string &
url = std::string() );
107 virtual std::string
url()
const;
112 virtual bool isOpen()
const;
113 virtual bool eof()
const;
115 virtual void close();
120 virtual long readBlock(
char* data,
unsigned long maxlen );
122 virtual long writeBlock(
const char* data,
unsigned long len );
125 virtual int putch(
int ch );
126 virtual bool ungetch(
int ch );
130 std::istream *_stream;
144 const std::string &
url = std::string() );
147 const std::string &
url = std::string() );
151 virtual std::string
url()
const;
156 virtual bool isOpen()
const;
157 virtual bool eof()
const;
159 virtual void close();
165 virtual long readBlock(
char* data,
unsigned long maxlen );
166 virtual long writeBlock(
const char* data,
unsigned long len );
169 virtual int putch(
int ch );
171 virtual bool ungetch(
int ch );
175 std::ostream *_stream;
virtual std::string url() const
virtual bool open(int mode)
virtual offset_t at() const
int mode() const
access mode(s) (read/write): bitwise OR of Mode values
DataSource on a std::ostream (write-only stream)
virtual ~StreamDataSource()
virtual bool isOpen() const
Abstraction layer for various data sources (file, buffer, socket...).
virtual long writeBlock(const char *data, unsigned long len)
DataSource on a std::istream (read-only stream)
virtual bool allowsMemoryMapping() const
virtual offset_t size() const
always returns 0
virtual int iterateMode() const
possible iteration mode(s): bitwise OR of IterateMode values
virtual DataSource * clone() const
virtual bool operator!() const
unsigned long long offset_t
Offsets are 64 bits if supported.
virtual bool ungetch(int ch)
virtual long readBlock(char *data, unsigned long maxlen)
virtual int putch(int ch)
DataSource on a std::iostream (read/write stream)
StreamDataSource(std::iostream &, const std::string &url=std::string())
Using an existing, external stream.