1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-22 08:22:04 +03:00

Adding write(str) and write(buf, size) methods to Print class and Ethernet library Client and Server classes. This allows sending a whole string or buffer at once, reducing the number of ethernet packets.

This commit is contained in:
David A. Mellis
2009-04-26 13:10:34 +00:00
parent a0b3e6334d
commit 9dd3491ab3
7 changed files with 47 additions and 7 deletions

View File

@ -50,6 +50,7 @@ class HardwareSerial : public Print
int read(void);
void flush(void);
virtual void write(uint8_t);
using Print::write; // pull in write(str) and write(buf, size) from Print
};
extern HardwareSerial Serial;

View File

@ -21,7 +21,6 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
#include <math.h>
#include "wiring.h"
@ -29,6 +28,20 @@
// Public Methods //////////////////////////////////////////////////////////////
/* default implementation: may be overridden */
void Print::write(const char *str)
{
while (*str)
write(*str++);
}
/* default implementation: may be overridden */
void Print::write(const uint8_t *buffer, size_t size)
{
while (size--)
write(*buffer++);
}
void Print::print(uint8_t b)
{
this->write(b);
@ -39,10 +52,9 @@ void Print::print(char c)
print((byte) c);
}
void Print::print(const char c[])
void Print::print(const char str[])
{
while (*c)
print(*c++);
write(str);
}
void Print::print(int n)

View File

@ -21,6 +21,7 @@
#define Print_h
#include <inttypes.h>
#include <stdio.h> // for size_t
#define DEC 10
#define HEX 16
@ -34,7 +35,9 @@ class Print
void printNumber(unsigned long, uint8_t);
void printFloat(double, uint8_t);
public:
virtual void write(uint8_t);
virtual void write(uint8_t) = 0;
virtual void write(const char *str);
virtual void write(const uint8_t *buffer, size_t size);
void print(char);
void print(const char[]);
void print(uint8_t);