1 //===-- MICmnStreamStderr.h -------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 // File: MICmnStreamStderr.h
13 // Overview: CMICmnStreamStderr interface.
15 // Environment: Compilers: Visual C++ 12.
16 // gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17 // Libraries: See MIReadmetxt.
25 #include "MIUtilString.h"
26 #include "MICmnBase.h"
27 #include "MIUtilSingletonBase.h"
28 #include "MIUtilThreadBaseStd.h"
30 //++ ============================================================================
31 // Details: MI common code class. The MI driver requires this object.
32 // CMICmnStreamStderr sets up and tears downs stderr for the driver.
36 // Authors: Illya Rudkin 19/03/2014.
39 class CMICmnStreamStderr
41 , public MI::ISingleton< CMICmnStreamStderr >
43 friend class MI::ISingleton< CMICmnStreamStderr >;
47 static bool TextToStderr( const CMIUtilString & vrTxt );
48 static bool LLDBMsgToConsole( const CMIUtilString & vrTxt );
52 bool Initialize( void );
53 bool Shutdown( void );
57 bool Write( const CMIUtilString & vText, const bool vbSendToLog = true );
58 bool WriteLLDBMsg( const CMIUtilString & vText, const bool vbSendToLog = true );
62 /* ctor */ CMICmnStreamStderr( void );
63 /* ctor */ CMICmnStreamStderr( const CMICmnStreamStderr & );
64 void operator=( const CMICmnStreamStderr & );
66 bool WritePriv( const CMIUtilString & vText, const CMIUtilString & vTxtForLogFile, const bool vbSendToLog = true );
71 /* dtor */ virtual ~CMICmnStreamStderr( void );
75 CMIUtilThreadMutex m_mutex; // Mutex object for sync during Write()