net: tcp_client_socket connection state routines
[quarnos.git] / libs / stream.h
blob50720483373661987f5d53dd91ddcfd4e62ef68c
1 #ifndef _LSTREAM_H_
2 #define _LSTREAM_H_
4 #include "buffer.h"
5 #include "resources/device.h"
6 #include "delegate.h"
8 namespace resources {
9 class file;
11 namespace resources {
12 class stream {
13 public:
14 virtual void read(buffer &) = 0;
15 virtual void write(const buffer&) = 0;
18 class memory_stream : public stream {
19 private:
20 buffer buf;
21 int ptr;
23 public:
24 memory_stream(buffer);
26 virtual void read(buffer &);
27 virtual void write(const buffer&);
30 class file_stream : public stream {
31 private:
32 p<resources::file> fp;
33 public:
34 file_stream(p<resources::file>);
36 virtual void seek(int);
37 virtual void read(buffer &);
38 virtual void write(const buffer&);
42 #endif