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 : public CMICmnBase, public MI::ISingleton<CMICmnStreamStderr>
41 friend class MI::ISingleton<CMICmnStreamStderr>;
45 static bool TextToStderr(const CMIUtilString &vrTxt);
46 static bool LLDBMsgToConsole(const CMIUtilString &vrTxt);
50 bool Initialize(void);
55 bool Write(const CMIUtilString &vText, const bool vbSendToLog = true);
56 bool WriteLLDBMsg(const CMIUtilString &vText, const bool vbSendToLog = true);
60 /* ctor */ CMICmnStreamStderr(void);
61 /* ctor */ CMICmnStreamStderr(const CMICmnStreamStderr &);
62 void operator=(const CMICmnStreamStderr &);
64 bool WritePriv(const CMIUtilString &vText, const CMIUtilString &vTxtForLogFile, const bool vbSendToLog = true);
69 /* dtor */ virtual ~CMICmnStreamStderr(void);
73 CMIUtilThreadMutex m_mutex; // Mutex object for sync during Write()