Computer Assisted Medical Intervention Tool Kit version 6.0
 
Loading...
Searching...
No Matches
camitk::ConsoleStream Class Reference

Provides a console windows, within the CamiTK application. More...

#include <ConsoleStream.h>

+ Inheritance diagram for camitk::ConsoleStream:
+ Collaboration diagram for camitk::ConsoleStream:

Signals

void appendText (QString text)
 use a signal to print safely even if cout/cerr are written from other thread
 

Public Member Functions

 ConsoleStream (QObject *parent=nullptr)
 default constructor, init(..) have to be called later, before first use
 
void free ()
 reset the state as it was before (stream use the old buffer again)
 
void init (std::ostream *stream, QTextEdit *textEdit)
 initialize ConsoleStream using both input stream and output text edit
 
void setStream (std::ostream *stream)
 set the value for the buffer to be replaced by the ConsoleStream
 
void setTextEdit (QTextEdit *textEdit)
 set the log QTextEdit
 
 ~ConsoleStream () override
 destructor: use free() to restore previous stream output buffer
 

Protected Member Functions

int_type overflow (int_type v) override
 rewriting of the inherited method overflow
 
std::streamsize xsputn (const char *p, std::streamsize n) override
 rewriting of the inherited method xsputn
 

Detailed Description

Provides a console windows, within the CamiTK application.

The console widget.

Usage:

#include <ConsoleStream.h>
...
// create your application
QApplication app(argc, argv);
// these redirect both cout/cerr
ConsoleStream cout(std::cout);
ConsoleStream cerr(std::cerr);
// now start using cout and cerr normally
std::cerr << "Oops"; // this goes to your debugger output
Provides a console windows, within the CamiTK application.
Definition ConsoleStream.h:74

Potential problem on windows (see thread)

  • std::string::clear() and std::string::push_back(...) don't exist, but myString.clear() can be substituted by myString.erase(myString.begin(), myString.end()) and myString.push_back(v) can be replaced by myString += v.
  • The usage of int_type seems to require a using std::ios::int_type statement.

Constructor & Destructor Documentation

◆ ConsoleStream()

camitk::ConsoleStream::ConsoleStream ( QObject *  parent = nullptr)
inline

default constructor, init(..) have to be called later, before first use

◆ ~ConsoleStream()

camitk::ConsoleStream::~ConsoleStream ( )
inlineoverride

destructor: use free() to restore previous stream output buffer

References free().

+ Here is the call graph for this function:

Member Function Documentation

◆ appendText

void camitk::ConsoleStream::appendText ( QString  text)
signal

use a signal to print safely even if cout/cerr are written from other thread

◆ free()

void camitk::ConsoleStream::free ( )
inline

reset the state as it was before (stream use the old buffer again)

Referenced by camitk::MainWindow::redirectToConsole(), setStream(), and ~ConsoleStream().

+ Here is the caller graph for this function:

◆ init()

void camitk::ConsoleStream::init ( std::ostream *  stream,
QTextEdit *  textEdit 
)
inline

initialize ConsoleStream using both input stream and output text edit

References setStream(), and setTextEdit().

Referenced by camitk::MainWindow::redirectToConsole().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ overflow()

int_type camitk::ConsoleStream::overflow ( int_type  v)
inlineoverrideprotected

rewriting of the inherited method overflow

◆ setStream()

void camitk::ConsoleStream::setStream ( std::ostream *  stream)
inline

set the value for the buffer to be replaced by the ConsoleStream

References free().

Referenced by init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setTextEdit()

void camitk::ConsoleStream::setTextEdit ( QTextEdit *  textEdit)
inline

set the log QTextEdit

Referenced by init().

+ Here is the caller graph for this function:

◆ xsputn()

std::streamsize camitk::ConsoleStream::xsputn ( const char *  p,
std::streamsize  n 
)
inlineoverrideprotected

rewriting of the inherited method xsputn


The documentation for this class was generated from the following file: