Duplicate all data passed by the stream operator to two output streams. More...
#include <debug/copystream.h>
Inheritance diagram for CopyStream:
Collaboration diagram for CopyStream:Public Member Functions | |
| CopyStream (OutputStream *first, OutputStream *second) | |
| Constructor. More... | |
| template<typename T > | |
| CopyStream & | operator<< (T value) |
| Generic stream operator for any data type. More... | |
| template<typename T > | |
| CopyStream & | operator<< (T &(*f)(T &)) |
| Deal with [OutputStream] manipulator functions. More... | |
Public Member Functions inherited from OutputStream | |
| OutputStream () | |
| Default constructor. Initial number system is decimal. More... | |
| virtual | ~OutputStream () |
| Destructor. | |
| virtual void | flush ()=0 |
| Clears the buffer. More... | |
| OutputStream & | operator<< (char c) |
| Print a single character. More... | |
| OutputStream & | operator<< (unsigned char c) |
| Print a single character. More... | |
| OutputStream & | operator<< (const char *string) |
| Printing a null-terminated string. More... | |
| OutputStream & | operator<< (bool b) |
| Print a boolean value. More... | |
| OutputStream & | operator<< (short ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (unsigned short ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (int ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (unsigned int ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (long ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (unsigned long ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (long long ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (unsigned long long ival) |
| Print an integral number in radix base. More... | |
| OutputStream & | operator<< (const void *ptr) |
| Print a pointer as hexadecimal number. More... | |
| OutputStream & | operator<< (OutputStream &(*f)(OutputStream &)) |
| Calls one of the manipulator functions. More... | |
Public Member Functions inherited from Stringbuffer | |
| virtual | ~Stringbuffer () |
| Destructor (nothing to do here) | |
Additional Inherited Members | |
Public Attributes inherited from OutputStream | |
| int | base |
| Number system used for printing integral numbers (one of 2, 8, 10, or 16) | |
Protected Member Functions inherited from Stringbuffer | |
| Stringbuffer () | |
| Constructor; Marks the buffer as empty. | |
| void | put (char c) |
| Inserts a character into the buffer. More... | |
Protected Attributes inherited from Stringbuffer | |
| char | buffer [80] |
| buffer containing characters that will be printed upon flush() | |
| long unsigned | pos |
| current position in the buffer | |
Duplicate all data passed by the stream operator to two output streams.
Can be used as replacement for any OutputStream – for example, forwarding the DBG output simultaneously to screen (TextStream) and serial console (SerialStream).
By using template programming, two generic methods are sufficient (which simply forward the input to both).
|
inline |
Constructor.
| first | First recipient for output passed to this object |
| second | Second recipient for output passed to this object |
|
inline |
Generic stream operator for any data type.
Forwards all input to both recipients.
Uses template meta programming for a generic & short solution
| T | Type of data to be forwarded |
| value | data to be forwarded |
|
inline |
Deal with [OutputStream] manipulator functions.
| T | Manipulator type |
| f | pointer to manipulator function |