CThreadMsgStream Class Reference
Logging and debugguing

This class is used to handle syncronizized output of logging output in a multi-threaded environment. More...

`#include <mia/core/threadedmsg.hh>`

Inherits std::ostream.

## Public Member Functions

| CThreadMsgStream ()
| ~CThreadMsgStream ()

## Static Public Member Functions

template<typename OS>
static void | set_master_stream (OS &master)

## Friends

template<typename OS, typename placeholder>
struct | __dispatch_set_master_stream

## Detailed Description

This class is used to handle syncronizized output of logging output in a multi-threaded environment.

This class is used to syncronize the output of the logging stream cverb and its helper functions cvmsg(), cvdebug(), cverror(), cvwarning() ...

To use it, just declare a variable of type CThreadMsgStream at the beginning of the threaded function. Output is only written to the master output stream if a newline is sent or explicit syncronization via flush() is requested.

Note, that a CThreadMsgStream itself can not serve as master stream since it would deadlock.

Definition at line 44 of file threadedmsg.hh.

## Constructor & Destructor Documentation

## CThreadMsgStream()

CThreadMsgStream::CThreadMsgStream | ( |  | ) |

Constructor. This constructor sets the thread-local output of the vstream backend to itself and saves to old output.

## ~CThreadMsgStream()

CThreadMsgStream::~CThreadMsgStream | ( |  | ) |

Destructor. This destructor flushes the output and then resets the thread-local vstream backend to the original output.

References set_master_stream().

## Member Function Documentation

## set_master_stream()

template<typename OS>

void CThreadMsgStream::set_master_stream | ( | OS & | master | ) |

static

Set the master output stream. The default is std::cerr.

Parameters

  master | the new master output stream;

Remarks
  if the new master is of type CThreadMsgStream a deadlock is certain.

Definition at line 111 of file threadedmsg.hh.

References __dispatch_set_master_stream.

Referenced by ~CThreadMsgStream().

## Friends And Related Symbol Documentation

## __dispatch_set_master_stream

template<typename OS, typename placeholder>

friend struct __dispatch_set_master_stream

friend

Definition at line 67 of file threadedmsg.hh.

References __dispatch_set_master_stream.

Referenced by __dispatch_set_master_stream, and set_master_stream().

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

- threadedmsg.hh