#pragma once
#include "MICmnBase.h"
#include "MIUtilSingletonBase.h"
#include "MIUtilString.h"
#include "MIUtilThreadBaseStd.h"
class CMICmnStreamStderr : public CMICmnBase,
public MI::ISingleton<CMICmnStreamStderr> {
friend class MI::ISingleton<CMICmnStreamStderr>;
public:
static bool TextToStderr(const CMIUtilString &vrTxt);
static bool LLDBMsgToConsole(const CMIUtilString &vrTxt);
public:
bool Initialize() override;
bool Shutdown() override;
bool Lock();
bool Unlock();
bool Write(const CMIUtilString &vText, const bool vbSendToLog = true);
bool WriteLLDBMsg(const CMIUtilString &vText, const bool vbSendToLog = true);
private:
CMICmnStreamStderr();
CMICmnStreamStderr(const CMICmnStreamStderr &);
void operator=(const CMICmnStreamStderr &);
bool WritePriv(const CMIUtilString &vText,
const CMIUtilString &vTxtForLogFile,
const bool vbSendToLog = true);
private:
~CMICmnStreamStderr() override;
private:
CMIUtilThreadMutex m_mutex;
};