net: socket system, high level api
[quarnos.git] / resources / net / client_socket.h
blob59d0db90cd352ae34c2bb28f497bfb5eee7c8c46
1 #ifndef _CLIENT_SOCKET_H_
2 #define _CLIENT_SOCKET_H_
4 #include "libs/stream.h"
6 namespace net {
7 class transport_layer;
9 class client_socket : public resources::stream {
10 protected:
11 p<transport_layer> down;
13 public:
14 client_socket(p<transport_layer> tl) {
15 down = tl;
18 virtual void connect(const ipv4_addr&, int) = 0;
19 virtual void close() = 0;
22 class remote_client_socket : public client_socket {
23 public:
24 remote_client_socket(p<transport_layer> tl) : client_socket(tl) { }
26 void connect(const ipv4_addr&,int) { }
28 virtual void set(const ipv4_addr&, int, int, const buffer&) = 0;
29 virtual ipv4_addr get_addr() const = 0;
33 #endif