[gnoduino: 106/237] Making Print::write(char *) non-virtual.



commit 7b9b0620aed44c8caedd3775b87412328d38de21
Author: David A. Mellis <d mellis arduino cc>
Date:   Wed Sep 7 18:41:05 2011 -0400

    Making Print::write(char *) non-virtual.
    
    http://code.google.com/p/arduino/issues/detail?id=607

 arduino/cores/arduino/Client.h  |    1 -
 arduino/cores/arduino/Print.cpp |   10 ----------
 arduino/cores/arduino/Print.h   |    2 +-
 arduino/cores/arduino/Server.h  |    2 +-
 arduino/cores/arduino/Udp.h     |    2 --
 5 files changed, 2 insertions(+), 15 deletions(-)
---
diff --git a/arduino/cores/arduino/Client.h b/arduino/cores/arduino/Client.h
index ed9e9b4..ea13483 100644
--- a/arduino/cores/arduino/Client.h
+++ b/arduino/cores/arduino/Client.h
@@ -10,7 +10,6 @@ public:
   virtual int connect(IPAddress ip, 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(const char *str) =0;
   virtual size_t write(const uint8_t *buf, size_t size) =0;
   virtual int available() = 0;
   virtual int read() = 0;
diff --git a/arduino/cores/arduino/Print.cpp b/arduino/cores/arduino/Print.cpp
index 8190d4f..500de8c 100755
--- a/arduino/cores/arduino/Print.cpp
+++ b/arduino/cores/arduino/Print.cpp
@@ -30,16 +30,6 @@
 // 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 */
 size_t Print::write(const uint8_t *buffer, size_t size)
 {
   size_t n = 0;
diff --git a/arduino/cores/arduino/Print.h b/arduino/cores/arduino/Print.h
index 8530b03..1af6b72 100755
--- a/arduino/cores/arduino/Print.h
+++ b/arduino/cores/arduino/Print.h
@@ -46,7 +46,7 @@ class Print
     void clearWriteError() { setWriteError(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);
     
     size_t print(const __FlashStringHelper *);
diff --git a/arduino/cores/arduino/Server.h b/arduino/cores/arduino/Server.h
index edab726..9674c76 100644
--- a/arduino/cores/arduino/Server.h
+++ b/arduino/cores/arduino/Server.h
@@ -1,7 +1,7 @@
 #ifndef server_h
 #define server_h
 
-class Server {
+class Server : public Print {
 public:
   virtual void begin() =0;
 };
diff --git a/arduino/cores/arduino/Udp.h b/arduino/cores/arduino/Udp.h
index 1fb9cd3..dc5644b 100644
--- a/arduino/cores/arduino/Udp.h
+++ b/arduino/cores/arduino/Udp.h
@@ -57,8 +57,6 @@ public:
   virtual int endPacket() =0;
   // Write a single byte into the packet
   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
   virtual size_t write(const uint8_t *buffer, size_t size) =0;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]