aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
diff options
context:
space:
mode:
Diffstat (limited to 'cores/arduino')
-rw-r--r--cores/arduino/HardwareSerial.h2
-rw-r--r--cores/arduino/Print.h7
-rw-r--r--cores/arduino/USBAPI.h2
3 files changed, 8 insertions, 3 deletions
diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h
index 8a5bf95..17000c2 100644
--- a/cores/arduino/HardwareSerial.h
+++ b/cores/arduino/HardwareSerial.h
@@ -124,7 +124,7 @@ class HardwareSerial : public Stream
virtual int available(void);
virtual int peek(void);
virtual int read(void);
- int availableForWrite(void);
+ virtual int availableForWrite(void);
virtual void flush(void);
virtual size_t write(uint8_t);
inline size_t write(unsigned long n) { return write((uint8_t)n); }
diff --git a/cores/arduino/Print.h b/cores/arduino/Print.h
index d099a3b..4d8a2f5 100644
--- a/cores/arduino/Print.h
+++ b/cores/arduino/Print.h
@@ -22,6 +22,7 @@
#include <inttypes.h>
#include <stdio.h> // for size_t
+#include <limits.h> // for INT_MAX
#include "WString.h"
#include "Printable.h"
@@ -57,7 +58,11 @@ class Print
size_t write(const char *buffer, size_t size) {
return write((const uint8_t *)buffer, size);
}
-
+
+ // default to zero, meaning "a single write may block"
+ // should be overriden by subclasses with buffering
+ virtual int availableForWrite() { return 0; }
+
size_t print(const __FlashStringHelper *);
size_t print(const String &);
size_t print(const char[]);
diff --git a/cores/arduino/USBAPI.h b/cores/arduino/USBAPI.h
index 358444e..479ced9 100644
--- a/cores/arduino/USBAPI.h
+++ b/cores/arduino/USBAPI.h
@@ -98,7 +98,7 @@ public:
virtual int available(void);
virtual int peek(void);
virtual int read(void);
- int availableForWrite(void);
+ virtual int availableForWrite(void);
virtual void flush(void);
virtual size_t write(uint8_t);
virtual size_t write(const uint8_t*, size_t);