From 0681fc1f177f7c94b4e98bb0931a5efda50f32b0 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Sun, 26 Apr 2009 13:10:34 +0000 Subject: 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. --- cores/arduino/Print.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'cores/arduino/Print.cpp') diff --git a/cores/arduino/Print.cpp b/cores/arduino/Print.cpp index d4833da..74d0e5b 100755 --- a/cores/arduino/Print.cpp +++ b/cores/arduino/Print.cpp @@ -21,7 +21,6 @@ #include #include -#include #include #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) -- cgit v1.2.3-18-g5258