PIP 5.5.3
Platform-Independent Primitives
Classes | Public Types | Public Member Functions | Static Public Member Functions | Related Functions | List of all members
PICout Class Reference

Universal output to console class. More...

#include <picout.h>

Classes

class  Notifier
 Class for emit notifications of PICout. More...
 

Public Types

enum  OutputDevice { NoDevices = 0x0 , Console = 0x1 , DEPRECATEDM =("use PICout::Console") = Console , Buffer = 0x2 , AllDevices = 0xFFFF }
 Enum contains output devices of PICout. More...
 

Public Member Functions

 PICout (int controls=PICoutManipulators::DefaultControls, PICoutStdStream stream=PICoutStdStream::StdOut)
 Default constructor with default features (AddSpaces and AddNewLine)
 
 PICout (bool active, PICoutStdStream stream=PICoutStdStream::StdOut)
 Construct with default features (AddSpaces and AddNewLine), but if "active" is false does nothing.
 
PICoutoperator<< (const char *v)
 Output operator for strings with "const char * " type.
 
PICoutoperator<< (const PIString &v)
 Output operator for PIString.
 
PICoutoperator<< (bool v)
 Output operator for boolean values.
 
PICoutoperator<< (char v)
 Output operator for "char" values.
 
PICoutoperator<< (uchar v)
 Output operator for "unsigned char" values.
 
PICoutoperator<< (short v)
 Output operator for "short" values.
 
PICoutoperator<< (ushort v)
 Output operator for "unsigned short" values.
 
PICoutoperator<< (int v)
 Output operator for "int" values.
 
PICoutoperator<< (uint v)
 Output operator for "unsigned int" values.
 
PICoutoperator<< (long v)
 Output operator for "long" values.
 
PICoutoperator<< (ulong v)
 Output operator for "unsigned long" values.
 
PICoutoperator<< (llong v)
 Output operator for "long long" values.
 
PICoutoperator<< (ullong v)
 Output operator for "unsigned long long" values.
 
PICoutoperator<< (float v)
 Output operator for "float" values.
 
PICoutoperator<< (double v)
 Output operator for "double" values.
 
PICoutoperator<< (ldouble v)
 Output operator for "ldouble" values.
 
PICoutoperator<< (const void *v)
 Output operator for pointers.
 
PICoutoperator<< (const PIObject *v)
 Output operator for PIObject and ancestors.
 
PICoutoperator<< (PICoutManipulators::PICoutSpecialChar v)
 Output operator for PICoutSpecialChar values.
 
PICoutoperator<< (PIFlags< PICoutManipulators::PICoutFormat > v)
 Output operator for PIFlags<PICoutFormat> values.
 
PICoutoperator<< (PICoutManipulators::PICoutFormat v)
 Output operator for PICoutFormat values.
 
PICoutoperator<< (PICoutManipulators::PICoutAction v)
 Do some action. More...
 
PICoutsetControl (PICoutManipulators::PICoutControl c, bool on=true)
 Set control flag "c" is "on" state.
 
PICoutsetControls (PICoutManipulators::PICoutControls c)
 Set control flags "c".
 
PICoutsaveAndSetControls (PICoutManipulators::PICoutControls c)
 Exec saveControls() and set control flags to "c".
 
PICoutsaveControls ()
 Save control flags to internal stack. More...
 
PICoutrestoreControls ()
 Restore control flags from internal stack. More...
 
PICoutspace ()
 Conditional put space character to output. More...
 
PICoutquote ()
 Conditional put quote character to output. More...
 
PICoutnewLine ()
 Conditional put new line character to output. More...
 
PICoutwrite (char c)
 Write char.
 
PICoutwrite (const char *str)
 Write raw data.
 
PICoutwrite (const char *str, int len)
 Write raw data.
 
PICoutwrite (const PIString &s)
 Write raw PIString.
 

Static Public Member Functions

static void stdoutPIString (const PIString &str, PICoutStdStream s=PICoutStdStream::StdOut)
 Output PIString to stdout.
 
static PIString getBuffer ()
 Returns internal PIString buffer.
 
static PIString getBufferAndClear ()
 Returns internal PIString buffer and clear it.
 
static void clearBuffer ()
 Clear internal PIString buffer.
 
static bool setOutputDevice (OutputDevice d, bool on=true)
 Set output to device "d" enabled "on". Returns if it was enabled.
 
static bool enableOutputDevice (OutputDevice d)
 Turn on output device "d". Returns if it was enabled.
 
static bool disableOutputDevice (OutputDevice d)
 Turn off output device "d". Returns if it was enabled.
 
static void setOutputDevices (OutputDevices d)
 Set output to devices to "d".
 
static OutputDevices currentOutputDevices ()
 Returns current output devices.
 
static bool isOutputDeviceActive (OutputDevice d)
 Returns if output device "d" is active.
 
static PICout withExternalBuffer (PIString *buffer, PIFlags< PICoutManipulators::PICoutControl > controls=PICoutManipulators::AddSpaces)
 Construct with external buffer.
 
static PICout withExternalBufferAndID (PIString *buffer, int id, PIFlags< PICoutManipulators::PICoutControl > controls=PICoutManipulators::DefaultControls)
 Construct with external buffer and ID "id". See Notifier for details.
 
static int registerExternalBufferID ()
 Returns unique external buffer ID for later use in withExternalBufferAndID()
 

Related Functions

(Note that these are not member functions.)

PICout operator<< (PICout s, const PISystemMonitor::ThreadStats &v)
 Output operator to PICout.
 
template<typename T >
PICout operator<< (PICout s, const PIDeque< T > &v)
 Output operator to PICout.
 
template<typename Key , typename Type >
PICout operator<< (PICout s, const PIMap< Key, Type > &v)
 Output operator to PICout.
 
template<typename Type0 , typename Type1 >
PICout operator<< (PICout s, const PIPair< Type0, Type1 > &v)
 Output operator to PICout.
 
template<typename T >
PICout operator<< (PICout s, const PIVector< T > &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIBinaryLog::BinLogInfo &bi)
 Output operator PIBinaryLog::BinLogInfo to PICout.
 
PICout operator<< (PICout s, const PIDir &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIFile::FileInfo &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PISerial::DeviceInfo &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIJSON &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PISystemInfo::MountInfo &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIConstChars &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIStringList &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PITime &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIDate &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIDateTime &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PINetworkAddress &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PISystemTime &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PISystemTime::Frequency &f)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIValueTree &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariant &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::Enumerator &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::Enum &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::File &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::Dir &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::Color &v)
 Output operator to PICout.
 
PICout operator<< (PICout s, const PIVariantTypes::IODevice &v)
 Output operator to PICout.
 

Detailed Description

Universal output to console class.

Synopsis

This class provide many stream operators for output with some features. Output to PICout is thread-sequential, i.e. doesn`t mixed from parallel threads.

Features

Usage

using namespace PICoutManipulators;
int a = 10, b = 32, c = 11;
piCout << a << Hex << b << Bin << c;
// 10 20 1011
piCout << "this"
<< "is" << Green << "green" << Default << "word";
// this is green word
PICout(AddSpaces | AddNewLine | AddQuotes) << Tab << "tab and"
<< "quotes";
// "tab and" "quotes"
PICout(int controls=PICoutManipulators::DefaultControls, PICoutStdStream stream=PICoutStdStream::StdOut)
Default constructor with default features (AddSpaces and AddNewLine)
Definition: picout.cpp:180
Namespace contains enums that controls PICout.
Definition: picout.h:69
@ Bin
Definition: picout.h:114
@ Hex
Definition: picout.h:117
@ Tab
Definition: picout.h:77
@ AddNewLine
Definition: picout.h:103
@ AddQuotes
Definition: picout.h:104
@ AddSpaces
Definition: picout.h:102
#define piCout
Macro used for conditional (piDebug) output to PICout(StdOut)
Definition: picout.h:35

Writing your own output operator

inline PICout operator<<(PICout s, const PIByteArray & ba) {
s.space(); // insert space after previous output
s.quote(); // ONLY if you want to quoted your type
s.saveAndSetControls(0); // clear all features and
// save them to stack,
// now it`s behavior similar to std::cout
// your output
for (uint i = 0; i < ba.size(); ++i)
s << ba[i];
s.restoreControls(); // restore features from stack
s.quote(); // ONLY if you want to quoted your type
return s;
}
The PIByteArray class provides an array of bytes.
Definition: pibytearray.h:42
size_t size() const
Number of elements in the container.
Definition: pibytearray.h:150
Universal output to console class.
Definition: picout.h:160
PICout & operator<<(const char *v)
Output operator for strings with "const char * " type.
Definition: picout.cpp:448
PICout & space()
Conditional put space character to output.
Definition: picout.cpp:575
PICout & restoreControls()
Restore control flags from internal stack.
Definition: picout.cpp:559
PICout & quote()
Conditional put quote character to output.
Definition: picout.cpp:590
PICout & saveAndSetControls(PICoutManipulators::PICoutControls c)
Exec saveControls() and set control flags to "c".
Definition: picout.cpp:316

Member Enumeration Documentation

◆ OutputDevice

Enum contains output devices of PICout.

Enumerator
NoDevices 

PICout is disabled

Console 

Standard console output

Buffer 

Internal buffer

AllDevices 

All

Member Function Documentation

◆ operator<<()

PICout & PICout::operator<< ( PICoutManipulators::PICoutAction  v)

Do some action.

TODO : wondows ClearScreen !!!

◆ saveControls()

PICout & PICout::saveControls ( )

Save control flags to internal stack.

See also
restoreControl()

◆ restoreControls()

PICout & PICout::restoreControls ( )

Restore control flags from internal stack.

See also
saveControl()

◆ space()

PICout & PICout::space ( )

Conditional put space character to output.

If it is not a first output and control AddSpaces is set space character is put

See also
quote(), newLine()

◆ quote()

PICout & PICout::quote ( )

Conditional put quote character to output.

If control AddQuotes is set quote character is put

See also
space(), newLine()

◆ newLine()

PICout & PICout::newLine ( )

Conditional put new line character to output.

If control AddNewLine is set new line character is put

See also
space(), quote()