io_stream
Wraps I/O for tango and phobos.
enum IO_MODE { R = 0b10, W = 0b11, RW = R|W };
interface io_stream
{
void[] map(size_t); // backend to image_interface.link
void[] map(size_t, size_t);
void copy(void*, size_t); // read
void copy(void*, size_t, size_t);
void write(void*, size_t, size_t);
void write(void*, size_t);
size_t size();
size_t position();
void position(size_t); // seek set
char getc();
void commit(); // backend to image_interface.commit
void close();
}
implementations:
- memory_stream
- file_stream
TANGO:
class file_stream : copy_stream
{
FileConduit file;
GreedyInput input;
GreedyOutput output;
...
}
PHOBOS:
class file_stream : copy_stream
{
Stream file;
...
}
