MRPT  1.9.9
CMyRedirector Class Reference

Detailed Description

This auxiliary class redirects the output sent to a streambuf to a wxTextCtrl object.

Uses code from http://www.devmaster.net/forums/showthread.php?t=7037 Jose Luis Blanco - Dec 2007 NOTE (10-Aug-2009): Added thread-safe support: We cannot write in a wxTextCtrl from a thread different than the main wx one, so if this object will be used by several threads, set "m_threadSafe" to true. In this mode, the object will NEVER write the text to the text control, unless the method "dumpNow()" is explicitly called FROM THE MAIN THREAD.

Definition at line 36 of file CMyRedirector.h.

#include <mrpt/gui/CMyRedirector.h>

Inheritance diagram for CMyRedirector:
Inheritance graph

Public Member Functions

 CMyRedirector (wxTextCtrl *obj, bool yieldApplication=false, int bufferSize=3000, bool also_cerr=false, bool threadSafe=false, bool also_to_cout_cerr=false)
 
virtual ~CMyRedirector ()
 
void flush ()
 
virtual void writeString (const std::string &str)
 
void dumpNow ()
 Writes all the stored strings to the text control (only for threadSafe mode). More...
 

Protected Attributes

wxTextCtrl * m_txt
 
std::streambuf * sbOld
 
std::streambuf * sbOldErr
 
const bool m_yieldApplication
 
const bool m_also_cerr
 
const bool m_threadSafe
 
const bool m_also_to_cout_cerr
 
wxCriticalSection m_cs
 
std::string m_strbuf
 

Private Member Functions

int overflow (int c)
 
int sync ()
 

Constructor & Destructor Documentation

◆ CMyRedirector()

CMyRedirector::CMyRedirector ( wxTextCtrl *  obj,
bool  yieldApplication = false,
int  bufferSize = 3000,
bool  also_cerr = false,
bool  threadSafe = false,
bool  also_to_cout_cerr = false 
)
inline

Definition at line 51 of file CMyRedirector.h.

References m_also_cerr, sbOld, and sbOldErr.

◆ ~CMyRedirector()

virtual CMyRedirector::~CMyRedirector ( )
inlinevirtual

Definition at line 79 of file CMyRedirector.h.

References m_also_cerr, sbOld, sbOldErr, and sync().

Member Function Documentation

◆ dumpNow()

void CMyRedirector::dumpNow ( )
inline

Writes all the stored strings to the text control (only for threadSafe mode).

CALL THIS METHOD FROM THE MAIN THREAD!

Definition at line 124 of file CMyRedirector.h.

References _U, m_also_to_cout_cerr, m_cs, m_strbuf, and m_txt.

◆ flush()

void CMyRedirector::flush ( )
inline

Definition at line 91 of file CMyRedirector.h.

References sync().

◆ overflow()

int CMyRedirector::overflow ( int  c)
inlineprivate

Definition at line 141 of file CMyRedirector.h.

References m_cs, sync(), and writeString().

◆ sync()

int CMyRedirector::sync ( )
inlineprivate

Definition at line 161 of file CMyRedirector.h.

References m_cs, and writeString().

Referenced by flush(), overflow(), and ~CMyRedirector().

◆ writeString()

virtual void CMyRedirector::writeString ( const std::string str)
inlinevirtual

Definition at line 92 of file CMyRedirector.h.

References _U, m_also_to_cout_cerr, m_strbuf, m_threadSafe, m_txt, and m_yieldApplication.

Referenced by overflow(), and sync().

Member Data Documentation

◆ m_also_cerr

const bool CMyRedirector::m_also_cerr
protected

Definition at line 43 of file CMyRedirector.h.

Referenced by CMyRedirector(), and ~CMyRedirector().

◆ m_also_to_cout_cerr

const bool CMyRedirector::m_also_to_cout_cerr
protected

Definition at line 45 of file CMyRedirector.h.

Referenced by dumpNow(), and writeString().

◆ m_cs

wxCriticalSection CMyRedirector::m_cs
protected

Definition at line 47 of file CMyRedirector.h.

Referenced by dumpNow(), overflow(), and sync().

◆ m_strbuf

std::string CMyRedirector::m_strbuf
protected

Definition at line 48 of file CMyRedirector.h.

Referenced by dumpNow(), and writeString().

◆ m_threadSafe

const bool CMyRedirector::m_threadSafe
protected

Definition at line 44 of file CMyRedirector.h.

Referenced by writeString().

◆ m_txt

wxTextCtrl* CMyRedirector::m_txt
protected

Definition at line 39 of file CMyRedirector.h.

Referenced by dumpNow(), and writeString().

◆ m_yieldApplication

const bool CMyRedirector::m_yieldApplication
protected

Definition at line 42 of file CMyRedirector.h.

Referenced by writeString().

◆ sbOld

std::streambuf* CMyRedirector::sbOld
protected

Definition at line 40 of file CMyRedirector.h.

Referenced by CMyRedirector(), and ~CMyRedirector().

◆ sbOldErr

std::streambuf* CMyRedirector::sbOldErr
protected

Definition at line 41 of file CMyRedirector.h.

Referenced by CMyRedirector(), and ~CMyRedirector().




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020