Skip to content

Commit a5f6a42

Browse files
committed
Pulled out Client API into a base class to allow multiple derived classes to use it, and moved it (plus IPAddress) out of the Ethernet library so that other libraries can find it. First steps in integrating the WiFly code so it's easier to switch between that and Ethernet
1 parent 7f18110 commit a5f6a42

File tree

4 files changed

+38
-8
lines changed

4 files changed

+38
-8
lines changed
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#ifndef netclient_h
2+
#define netclient_h
3+
#include "WProgram.h"
4+
#include "Print.h"
5+
#include "NetClient.h"
6+
#include "IPAddress.h"
7+
8+
class NetClient : public Stream {
9+
10+
public:
11+
virtual int connect(IPAddress ip, uint16_t port) =0;
12+
virtual int connect(const char *host, uint16_t port) =0;
13+
virtual void write(uint8_t) =0;
14+
virtual void write(const char *str) =0;
15+
virtual void write(const uint8_t *buf, size_t size) =0;
16+
virtual int available() = 0;
17+
virtual int read() = 0;
18+
virtual int read(uint8_t *buf, size_t size) = 0;
19+
virtual int peek() = 0;
20+
virtual void flush() = 0;
21+
virtual void stop() = 0;
22+
virtual uint8_t connected() = 0;
23+
virtual uint8_t operator==(int) = 0;
24+
virtual uint8_t operator!=(int) = 0;
25+
virtual operator bool() = 0;
26+
};
27+
28+
#endif

libraries/Ethernet/Client.h

+10-8
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,18 @@
22
#define client_h
33
#include "WProgram.h"
44
#include "Print.h"
5+
#include "NetClient.h"
6+
#include "IPAddress.h"
57

6-
class Client : public Stream {
8+
class Client : public NetClient {
79

810
public:
911
Client();
1012
Client(uint8_t sock);
1113

1214
uint8_t status();
13-
int connect(IPAddress ip, uint16_t port);
14-
int connect(const char *host, uint16_t port);
15+
virtual int connect(IPAddress ip, uint16_t port);
16+
virtual int connect(const char *host, uint16_t port);
1517
virtual void write(uint8_t);
1618
virtual void write(const char *str);
1719
virtual void write(const uint8_t *buf, size_t size);
@@ -20,11 +22,11 @@ class Client : public Stream {
2022
virtual int read(uint8_t *buf, size_t size);
2123
virtual int peek();
2224
virtual void flush();
23-
void stop();
24-
uint8_t connected();
25-
uint8_t operator==(int);
26-
uint8_t operator!=(int);
27-
operator bool();
25+
virtual void stop();
26+
virtual uint8_t connected();
27+
virtual uint8_t operator==(int);
28+
virtual uint8_t operator!=(int);
29+
virtual operator bool();
2830

2931
friend class Server;
3032

0 commit comments

Comments
 (0)