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

This commit is contained in:
amcewen 2011-03-28 12:08:53 +01:00
parent 7f18110b80
commit a5f6a42dd7
4 changed files with 38 additions and 8 deletions

View File

@ -0,0 +1,28 @@
#ifndef netclient_h
#define netclient_h
#include "WProgram.h"
#include "Print.h"
#include "NetClient.h"
#include "IPAddress.h"
class NetClient : public Stream {
public:
virtual int connect(IPAddress ip, uint16_t port) =0;
virtual int connect(const char *host, uint16_t port) =0;
virtual void write(uint8_t) =0;
virtual void write(const char *str) =0;
virtual void write(const uint8_t *buf, size_t size) =0;
virtual int available() = 0;
virtual int read() = 0;
virtual int read(uint8_t *buf, size_t size) = 0;
virtual int peek() = 0;
virtual void flush() = 0;
virtual void stop() = 0;
virtual uint8_t connected() = 0;
virtual uint8_t operator==(int) = 0;
virtual uint8_t operator!=(int) = 0;
virtual operator bool() = 0;
};
#endif

View File

@ -2,16 +2,18 @@
#define client_h
#include "WProgram.h"
#include "Print.h"
#include "NetClient.h"
#include "IPAddress.h"
class Client : public Stream {
class Client : public NetClient {
public:
Client();
Client(uint8_t sock);
uint8_t status();
int connect(IPAddress ip, uint16_t port);
int connect(const char *host, uint16_t port);
virtual int connect(IPAddress ip, uint16_t port);
virtual int connect(const char *host, uint16_t port);
virtual void write(uint8_t);
virtual void write(const char *str);
virtual void write(const uint8_t *buf, size_t size);
@ -20,11 +22,11 @@ public:
virtual int read(uint8_t *buf, size_t size);
virtual int peek();
virtual void flush();
void stop();
uint8_t connected();
uint8_t operator==(int);
uint8_t operator!=(int);
operator bool();
virtual void stop();
virtual uint8_t connected();
virtual uint8_t operator==(int);
virtual uint8_t operator!=(int);
virtual operator bool();
friend class Server;