FastArduino v1.10
C++ library to build fast but small Arduino/AVR projects
|
Output stream wrapper to provide formatted output API, a la C++. More...
#include <fastarduino/streams.h>
Public Types | |
using | MANIPULATOR = void(*)(ostream &) |
General type of a manipulator function applicable to this output stream. More... | |
Public Types inherited from streams::ios_base | |
using | iostate = uint8_t |
Bitmask type to represent stream state flags. More... | |
using | fmtflags = uint16_t |
Bitmask type to represent stream format flags. More... | |
Public Member Functions | |
ostream (ostreambuf &streambuf) | |
Construct a formatted output wrapper of streambuf . More... | |
ostreambuf & | rdbuf () const |
Return the stream buffer associated with this stream. More... | |
void | flush () |
Flush this ostream and blocks until all its buffer has been written to the underlying device. More... | |
void | put (char c) |
Insert character c into this stream. More... | |
void | write (const char *content, size_t size) |
Write a block of data to this stream. More... | |
void | write (const char *str) |
Write a string (null-terminated) to this stream. More... | |
void | write (const flash::FlashStorage *str) |
Write a flash-stored string (null-terminated) to this stream. More... | |
ostream & | operator<< (const void *ptr) |
Output the address of a pointer. More... | |
ostream & | operator<< (bool value) |
Output a boolean value. More... | |
ostream & | operator<< (char ch) |
Output a single character. More... | |
ostream & | operator<< (const char *str) |
Output a C-string (\0 terminated). More... | |
ostream & | operator<< (const flash::FlashStorage *str) |
Output a C-string (\0 terminated) that is stored in flash memory. More... | |
ostream & | operator<< (int value) |
Output a signed integral number, represented within the current base() , using the current minimum width() . More... | |
ostream & | operator<< (unsigned int value) |
Output an unsigned integral number, represented within the current base() , using the current minimum width() . More... | |
ostream & | operator<< (long value) |
Output a signed long integral number, represented within the current base() , using the current minimum width() . More... | |
ostream & | operator<< (unsigned long value) |
Output an unsigned long integral number, represented within the current base() , using the current minimum width() . More... | |
ostream & | operator<< (double value) |
Output a floating point number, using the current minimum width() and precision() . More... | |
ostream & | operator<< (MANIPULATOR func) |
Apply a MANIPULATOR to this output stream. More... | |
Public Member Functions inherited from streams::ios_base | |
iostate | rdstate () const |
Return the current stream error state. More... | |
void | setstate (iostate state) |
Set the stream error flags state in addition to currently set flags. More... | |
void | clear (iostate state=goodbit) |
Set the stream error state flags by assigning them the value of state . More... | |
bool | good () const |
bool | eof () const |
Return true if the associated stream has reached end-of-file. More... | |
bool | fail () const |
Return true if an error has occurred on the associated stream, since last time state was reset (clear() was called). More... | |
bool | bad () const |
Return true if a non-recoverable error has occurred on the associated stream. More... | |
bool | operator! () const |
Return true if an error has occurred on the associated stream, since last time state was reset (clear() was called). More... | |
operator bool () const | |
Check that the current stream has no errors. More... | |
void | flags (fmtflags flags) |
Set new format flags for this stream. More... | |
fmtflags | flags () const |
Return the format flags currently selected in this stream. More... | |
void | setf (fmtflags flags) |
Set this stream's format flags whose bits are set in flags , leaving unchanged the rest. More... | |
void | setf (fmtflags flags, fmtflags mask) |
Set this stream's format flags whose bits are set in both flags and mask , and clears the format flags whose bits are set in mask but not in flags . More... | |
void | unsetf (fmtflags flags) |
Clear this stream's format flags whose bits are set in flags . More... | |
char | fill () const |
Return the fill character. More... | |
void | fill (char fill) |
Set fill as new fill character for this stream. More... | |
void | width (uint8_t width) |
Set minimum width used for displaying values. More... | |
uint8_t | width () const |
Get the current minimum width value (default = 0 ) used for formatted output. More... | |
void | precision (uint8_t precision) |
Set precision (number of digits after decimal point) used for displaying floating values. More... | |
uint8_t | precision () const |
Get the current precision (default = 6 ) used for formatted floating values output. More... | |
ios_base & | copyfmt (const ios_base &rhs) |
Copy formatting information from rhs to this stream. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from streams::ios_base | |
static constexpr iostate | eofbit = 0x01 |
This bit is set if the stream has unexpectedly reached its end during an extraction. More... | |
static constexpr iostate | failbit = 0x02 |
This bit is set when an input or operation failed due to a formatting error during extraction. More... | |
static constexpr iostate | badbit = 0x04 |
This bit is set when an irrecoverable stream error has occurred, e.g. More... | |
static constexpr iostate | goodbit = 0 |
No error; always 0 . More... | |
static constexpr fmtflags | dec = 0x0001 |
Read or write integral values using decimal (0..9) base format. More... | |
static constexpr fmtflags | bin = 0x0002 |
Read or write integral values using binary (0,1) base format. More... | |
static constexpr fmtflags | oct = 0x0004 |
Read or write integral values using octal (0..7) base format. More... | |
static constexpr fmtflags | hex = 0x0008 |
Read or write integral values using hexadecimal (0..9,A..F) base format. More... | |
static constexpr fmtflags | basefield = dec | bin | oct | hex |
Bitmask constant used with setf(fmtflags, fmtflags) when changing the output base format. More... | |
static constexpr fmtflags | left = 0x0010 |
Pad all output to width() characters, with fill() character appended at the end so that the output appears left-adjusted. More... | |
static constexpr fmtflags | right = 0x0020 |
Pad all output to width() characters, with fill() character added at the beginning so that the output appears right-adjusted. More... | |
static constexpr fmtflags | adjustfield = left | right |
Bitmask constant used with setf(fmtflags, fmtflags) when changing the output adjustment. More... | |
static constexpr fmtflags | scientific = 0x0040 |
Write floating point values in fixed-point notation. More... | |
static constexpr fmtflags | fixed = 0x0080 |
Write floating point values in scientific notation. More... | |
static constexpr fmtflags | floatfield = scientific | fixed |
Bitmask constant used with setf(fmtflags, fmtflags) when changing the floating point output representation. More... | |
static constexpr fmtflags | boolalpha = 0x0200 |
Read or write bool values as alphabetic string (true or false ). More... | |
static constexpr fmtflags | showbase = 0x0400 |
Write integral values prefixed by their base: More... | |
static constexpr fmtflags | showpos = 0x1000 |
Write non-negative numerical values preceded by + . More... | |
static constexpr fmtflags | skipws = 0x2000 |
Skip leading spaces on certain extraction (read) operations. More... | |
static constexpr fmtflags | unitbuf = 0x4000 |
Flush output after each insertion operation. More... | |
static constexpr fmtflags | uppercase = 0x8000U |
Write uppercase letters instead of lowercase in certain insertion operations. More... | |
static constexpr uint8_t | MAX_PRECISION = 16 |
The maximum allowed precision. More... | |
Output stream wrapper to provide formatted output API, a la C++.
using streams::ostream::MANIPULATOR = void (*)(ostream&) |
|
inlineexplicit |
|
inline |
|
inline |
Flush this ostream and blocks until all its buffer has been written to the underlying device.
A manipulator exists with the same name and behavior.
|
inline |
Insert character c
into this stream.
The character is buffered by the underlying ostreambuf and transmitted to the connected device when possible. If the underlying ostreambuf overflows, then badbit
is set for this stream.
|
inline |
Write a block of data to this stream.
content
gets buffered by the underlying ostreambuf and transmitted to the connected device when possible. If the underlying ostreambuf overflows, then badbit
is set for this stream.
content | data to be transmitted |
size | the number of bytes from content to be transmitted |
|
inline |
Write a string (null-terminated) to this stream.
str
gets buffered by the underlying ostreambuf and transmitted to the connected device when possible. The terminating \0
is not transmitted. If the underlying ostreambuf overflows, then badbit
is set for this stream.
str | the string to be transmitted |
|
inline |
Write a flash-stored string (null-terminated) to this stream.
str
gets buffered by the underlying ostreambuf and transmitted to the connected device when possible. The terminating \0
is not transmitted. If the underlying ostreambuf overflows, then badbit
is set for this stream.
str | the string to be transmitted |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Output a C-string (\0
terminated) that is stored in flash memory.
str | the string to output |
this
formatted output
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Output a floating point number, using the current minimum width()
and precision()
.
value | the number to output |
this
formatted output
|
inline |
Apply a MANIPULATOR
to this output stream.
A manipulator may:
func | the manipulator to apply to this output stream |
this
formatted output