mirror of
https://github.com/esp8266/Arduino.git
synced 2025-08-01 03:47:23 +03:00
Making Print::write(char *) non-virtual.
http://code.google.com/p/arduino/issues/detail?id=607
This commit is contained in:
@ -10,7 +10,6 @@ public:
|
|||||||
virtual int connect(IPAddress ip, uint16_t port) =0;
|
virtual int connect(IPAddress ip, uint16_t port) =0;
|
||||||
virtual int connect(const char *host, uint16_t port) =0;
|
virtual int connect(const char *host, uint16_t port) =0;
|
||||||
virtual size_t write(uint8_t) =0;
|
virtual size_t write(uint8_t) =0;
|
||||||
virtual size_t write(const char *str) =0;
|
|
||||||
virtual size_t write(const uint8_t *buf, size_t size) =0;
|
virtual size_t write(const uint8_t *buf, size_t size) =0;
|
||||||
virtual int available() = 0;
|
virtual int available() = 0;
|
||||||
virtual int read() = 0;
|
virtual int read() = 0;
|
||||||
|
@ -29,16 +29,6 @@
|
|||||||
|
|
||||||
// Public Methods //////////////////////////////////////////////////////////////
|
// Public Methods //////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/* default implementation: may be overridden */
|
|
||||||
size_t Print::write(const char *str)
|
|
||||||
{
|
|
||||||
size_t n = 0;
|
|
||||||
while (*str) {
|
|
||||||
n += write(*str++);
|
|
||||||
}
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* default implementation: may be overridden */
|
/* default implementation: may be overridden */
|
||||||
size_t Print::write(const uint8_t *buffer, size_t size)
|
size_t Print::write(const uint8_t *buffer, size_t size)
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,7 @@ class Print
|
|||||||
void clearWriteError() { setWriteError(0); }
|
void clearWriteError() { setWriteError(0); }
|
||||||
|
|
||||||
virtual size_t write(uint8_t) = 0;
|
virtual size_t write(uint8_t) = 0;
|
||||||
virtual size_t write(const char *str);
|
size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); }
|
||||||
virtual size_t write(const uint8_t *buffer, size_t size);
|
virtual size_t write(const uint8_t *buffer, size_t size);
|
||||||
|
|
||||||
size_t print(const __FlashStringHelper *);
|
size_t print(const __FlashStringHelper *);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef server_h
|
#ifndef server_h
|
||||||
#define server_h
|
#define server_h
|
||||||
|
|
||||||
class Server {
|
class Server : public Print {
|
||||||
public:
|
public:
|
||||||
virtual void begin() =0;
|
virtual void begin() =0;
|
||||||
};
|
};
|
||||||
|
@ -57,8 +57,6 @@ public:
|
|||||||
virtual int endPacket() =0;
|
virtual int endPacket() =0;
|
||||||
// Write a single byte into the packet
|
// Write a single byte into the packet
|
||||||
virtual size_t write(uint8_t) =0;
|
virtual size_t write(uint8_t) =0;
|
||||||
// Write a string of characters into the packet
|
|
||||||
virtual size_t write(const char *str) =0;
|
|
||||||
// Write size bytes from buffer into the packet
|
// Write size bytes from buffer into the packet
|
||||||
virtual size_t write(const uint8_t *buffer, size_t size) =0;
|
virtual size_t write(const uint8_t *buffer, size_t size) =0;
|
||||||
|
|
||||||
|
@ -74,10 +74,6 @@ size_t EthernetClient::write(uint8_t b) {
|
|||||||
return write(&b, 1);
|
return write(&b, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t EthernetClient::write(const char *str) {
|
|
||||||
return write((const uint8_t *) str, strlen(str));
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t EthernetClient::write(const uint8_t *buf, size_t size) {
|
size_t EthernetClient::write(const uint8_t *buf, size_t size) {
|
||||||
if (_sock == MAX_SOCK_NUM) {
|
if (_sock == MAX_SOCK_NUM) {
|
||||||
setWriteError();
|
setWriteError();
|
||||||
|
@ -15,7 +15,6 @@ public:
|
|||||||
virtual int connect(IPAddress ip, uint16_t port);
|
virtual int connect(IPAddress ip, uint16_t port);
|
||||||
virtual int connect(const char *host, uint16_t port);
|
virtual int connect(const char *host, uint16_t port);
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
virtual size_t write(const char *str);
|
|
||||||
virtual size_t write(const uint8_t *buf, size_t size);
|
virtual size_t write(const uint8_t *buf, size_t size);
|
||||||
virtual int available();
|
virtual int available();
|
||||||
virtual int read();
|
virtual int read();
|
||||||
@ -28,6 +27,8 @@ public:
|
|||||||
|
|
||||||
friend class EthernetServer;
|
friend class EthernetServer;
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static uint16_t _srcport;
|
static uint16_t _srcport;
|
||||||
uint8_t _sock;
|
uint8_t _sock;
|
||||||
|
@ -72,11 +72,6 @@ size_t EthernetServer::write(uint8_t b)
|
|||||||
write(&b, 1);
|
write(&b, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t EthernetServer::write(const char *str)
|
|
||||||
{
|
|
||||||
write((const uint8_t *)str, strlen(str));
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t EthernetServer::write(const uint8_t *buffer, size_t size)
|
size_t EthernetServer::write(const uint8_t *buffer, size_t size)
|
||||||
{
|
{
|
||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
|
@ -15,8 +15,8 @@ public:
|
|||||||
EthernetClient available();
|
EthernetClient available();
|
||||||
virtual void begin();
|
virtual void begin();
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
virtual size_t write(const char *str);
|
|
||||||
virtual size_t write(const uint8_t *buf, size_t size);
|
virtual size_t write(const uint8_t *buf, size_t size);
|
||||||
|
using Print::write;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -107,12 +107,6 @@ size_t EthernetUDP::write(uint8_t byte)
|
|||||||
return write(&byte, 1);
|
return write(&byte, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t EthernetUDP::write(const char *str)
|
|
||||||
{
|
|
||||||
size_t len = strlen(str);
|
|
||||||
return write((const uint8_t *)str, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t EthernetUDP::write(const uint8_t *buffer, size_t size)
|
size_t EthernetUDP::write(const uint8_t *buffer, size_t size)
|
||||||
{
|
{
|
||||||
uint16_t bytes_written = bufferData(_sock, _offset, buffer, size);
|
uint16_t bytes_written = bufferData(_sock, _offset, buffer, size);
|
||||||
|
@ -67,11 +67,11 @@ public:
|
|||||||
virtual int endPacket();
|
virtual int endPacket();
|
||||||
// Write a single byte into the packet
|
// Write a single byte into the packet
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
// Write a string of characters into the packet
|
|
||||||
virtual size_t write(const char *str);
|
|
||||||
// Write size bytes from buffer into the packet
|
// Write size bytes from buffer into the packet
|
||||||
virtual size_t write(const uint8_t *buffer, size_t size);
|
virtual size_t write(const uint8_t *buffer, size_t size);
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
|
|
||||||
// Start processing the next available incoming packet
|
// Start processing the next available incoming packet
|
||||||
// Returns the size of the packet in bytes, or 0 if no packets are available
|
// Returns the size of the packet in bytes, or 0 if no packets are available
|
||||||
virtual int parsePacket();
|
virtual int parsePacket();
|
||||||
|
@ -81,6 +81,8 @@ public:
|
|||||||
void setCursor(uint8_t, uint8_t);
|
void setCursor(uint8_t, uint8_t);
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
void command(uint8_t);
|
void command(uint8_t);
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
private:
|
private:
|
||||||
void send(uint8_t, uint8_t);
|
void send(uint8_t, uint8_t);
|
||||||
void write4bits(uint8_t);
|
void write4bits(uint8_t);
|
||||||
|
@ -62,10 +62,6 @@ size_t File::write(uint8_t val) {
|
|||||||
return write(&val, 1);
|
return write(&val, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t File::write(const char *str) {
|
|
||||||
return write((const uint8_t *) str, strlen(str));
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t File::write(const uint8_t *buf, size_t size) {
|
size_t File::write(const uint8_t *buf, size_t size) {
|
||||||
size_t t;
|
size_t t;
|
||||||
if (!_file) {
|
if (!_file) {
|
||||||
|
@ -33,7 +33,6 @@ public:
|
|||||||
File(void); // 'empty' constructor
|
File(void); // 'empty' constructor
|
||||||
~File(void); // destructor
|
~File(void); // destructor
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
virtual size_t write(const char *str);
|
|
||||||
virtual size_t write(const uint8_t *buf, size_t size);
|
virtual size_t write(const uint8_t *buf, size_t size);
|
||||||
virtual int read();
|
virtual int read();
|
||||||
virtual int peek();
|
virtual int peek();
|
||||||
@ -50,6 +49,8 @@ public:
|
|||||||
boolean isDirectory(void);
|
boolean isDirectory(void);
|
||||||
File openNextFile(uint8_t mode = O_RDONLY);
|
File openNextFile(uint8_t mode = O_RDONLY);
|
||||||
void rewindDirectory(void);
|
void rewindDirectory(void);
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SDClass {
|
class SDClass {
|
||||||
|
@ -94,6 +94,8 @@ public:
|
|||||||
virtual int available();
|
virtual int available();
|
||||||
virtual void flush();
|
virtual void flush();
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
|
|
||||||
// public only for easy access by interrupt handlers
|
// public only for easy access by interrupt handlers
|
||||||
static inline void handle_interrupt();
|
static inline void handle_interrupt();
|
||||||
};
|
};
|
||||||
|
@ -164,14 +164,6 @@ size_t TwoWire::write(const uint8_t *data, size_t quantity)
|
|||||||
return quantity;
|
return quantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
// must be called in:
|
|
||||||
// slave tx event callback
|
|
||||||
// or after beginTransmission(address)
|
|
||||||
size_t TwoWire::write(const char *data)
|
|
||||||
{
|
|
||||||
return write((uint8_t*)data, strlen(data));
|
|
||||||
}
|
|
||||||
|
|
||||||
// must be called in:
|
// must be called in:
|
||||||
// slave rx event callback
|
// slave rx event callback
|
||||||
// or after requestFrom(address, numBytes)
|
// or after requestFrom(address, numBytes)
|
||||||
|
@ -53,7 +53,6 @@ class TwoWire : public Stream
|
|||||||
uint8_t requestFrom(uint8_t, uint8_t);
|
uint8_t requestFrom(uint8_t, uint8_t);
|
||||||
uint8_t requestFrom(int, int);
|
uint8_t requestFrom(int, int);
|
||||||
virtual size_t write(uint8_t);
|
virtual size_t write(uint8_t);
|
||||||
virtual size_t write(const char *);
|
|
||||||
virtual size_t write(const uint8_t *, size_t);
|
virtual size_t write(const uint8_t *, size_t);
|
||||||
virtual int available(void);
|
virtual int available(void);
|
||||||
virtual int read(void);
|
virtual int read(void);
|
||||||
@ -61,6 +60,8 @@ class TwoWire : public Stream
|
|||||||
virtual void flush(void);
|
virtual void flush(void);
|
||||||
void onReceive( void (*)(int) );
|
void onReceive( void (*)(int) );
|
||||||
void onRequest( void (*)(void) );
|
void onRequest( void (*)(void) );
|
||||||
|
|
||||||
|
using Print::write;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern TwoWire Wire;
|
extern TwoWire Wire;
|
||||||
|
Reference in New Issue
Block a user