summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-mi/MICmnLog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-mi/MICmnLog.cpp')
-rw-r--r--lldb/tools/lldb-mi/MICmnLog.cpp388
1 files changed, 190 insertions, 198 deletions
diff --git a/lldb/tools/lldb-mi/MICmnLog.cpp b/lldb/tools/lldb-mi/MICmnLog.cpp
index e85ddba316a..8643a8784e3 100644
--- a/lldb/tools/lldb-mi/MICmnLog.cpp
+++ b/lldb/tools/lldb-mi/MICmnLog.cpp
@@ -10,37 +10,34 @@
// In-house headers:
#include "MICmnLog.h"
#include "MICmnLogMediumFile.h"
-#include "MIDriverMgr.h"
#include "MICmnResources.h"
+#include "MIDriverMgr.h"
#include "MIUtilDateTimeStd.h"
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmnLog constructor.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
-CMICmnLog::CMICmnLog()
- : m_bEnabled(false)
- , m_bInitializingATM(false)
-{
- // Do not use this constructor, use Initialize()
+CMICmnLog::CMICmnLog() : m_bEnabled(false), m_bInitializingATM(false) {
+ // Do not use this constructor, use Initialize()
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmnLog destructor.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
-CMICmnLog::~CMICmnLog()
-{
- Shutdown();
-}
+CMICmnLog::~CMICmnLog() { Shutdown(); }
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Initialize resources for *this Logger.
// Type: Method.
// Args: None.
@@ -48,52 +45,57 @@ CMICmnLog::~CMICmnLog()
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::Initialize()
-{
- m_clientUsageRefCnt++;
-
- if (m_bInitialized)
- return MIstatus::success;
-
- ClrErrorDescription();
-
- // Mediums set inside because explicitly initing in MIDriverMain.cpp causes compile errors with CAtlFile
- CMICmnLogMediumFile &rFileLog(CMICmnLogMediumFile::Instance());
- bool bOk = RegisterMedium(rFileLog);
- if (bOk)
- {
- // Set the Log trace file's header
- const CMIUtilString &rCR(rFileLog.GetLineReturn());
- CMIUtilDateTimeStd date;
- CMIUtilString msg;
- msg = CMIUtilString::Format("%s\n", CMIDriverMgr::Instance().GetAppVersion().c_str());
- CMIUtilString logHdr(msg);
- msg = CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_CREATION_DATE), date.GetDate().c_str(), date.GetTime().c_str(), rCR.c_str());
- logHdr += msg;
- msg = CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_FILE_LOGGER_PATH), rFileLog.GetFileNamePath().c_str(), rCR.c_str());
- logHdr += msg;
-
- bOk = rFileLog.SetHeaderTxt(logHdr);
-
- // Note log file medium's status is not available until we write at least once to the file (so just write the title 1st line)
- m_bInitializingATM = true;
- CMICmnLog::WriteLog(".");
- if (!rFileLog.IsOk())
- {
- const CMIUtilString msg(
- CMIUtilString::Format(MIRSRC(IDS_LOG_ERR_FILE_LOGGER_DISABLED), rFileLog.GetErrorDescription().c_str()));
- CMICmnLog::WriteLog(msg);
- }
- m_bInitializingATM = false;
+bool CMICmnLog::Initialize() {
+ m_clientUsageRefCnt++;
+
+ if (m_bInitialized)
+ return MIstatus::success;
+
+ ClrErrorDescription();
+
+ // Mediums set inside because explicitly initing in MIDriverMain.cpp causes
+ // compile errors with CAtlFile
+ CMICmnLogMediumFile &rFileLog(CMICmnLogMediumFile::Instance());
+ bool bOk = RegisterMedium(rFileLog);
+ if (bOk) {
+ // Set the Log trace file's header
+ const CMIUtilString &rCR(rFileLog.GetLineReturn());
+ CMIUtilDateTimeStd date;
+ CMIUtilString msg;
+ msg = CMIUtilString::Format(
+ "%s\n", CMIDriverMgr::Instance().GetAppVersion().c_str());
+ CMIUtilString logHdr(msg);
+ msg = CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_CREATION_DATE),
+ date.GetDate().c_str(), date.GetTime().c_str(),
+ rCR.c_str());
+ logHdr += msg;
+ msg =
+ CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_FILE_LOGGER_PATH),
+ rFileLog.GetFileNamePath().c_str(), rCR.c_str());
+ logHdr += msg;
+
+ bOk = rFileLog.SetHeaderTxt(logHdr);
+
+ // Note log file medium's status is not available until we write at least
+ // once to the file (so just write the title 1st line)
+ m_bInitializingATM = true;
+ CMICmnLog::WriteLog(".");
+ if (!rFileLog.IsOk()) {
+ const CMIUtilString msg(
+ CMIUtilString::Format(MIRSRC(IDS_LOG_ERR_FILE_LOGGER_DISABLED),
+ rFileLog.GetErrorDescription().c_str()));
+ CMICmnLog::WriteLog(msg);
}
+ m_bInitializingATM = false;
+ }
- m_bInitialized = bOk;
+ m_bInitialized = bOk;
- return bOk;
+ return bOk;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Release resources for *this Logger.
// Type: Method.
// Args: None.
@@ -101,55 +103,52 @@ CMICmnLog::Initialize()
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::Shutdown()
-{
- if (--m_clientUsageRefCnt > 0)
- return MIstatus::success;
+bool CMICmnLog::Shutdown() {
+ if (--m_clientUsageRefCnt > 0)
+ return MIstatus::success;
- if (!m_bInitialized)
- return MIstatus::success;
+ if (!m_bInitialized)
+ return MIstatus::success;
- ClrErrorDescription();
+ ClrErrorDescription();
- const bool bOk = UnregisterMediumAll();
+ const bool bOk = UnregisterMediumAll();
- m_bInitialized = bOk;
+ m_bInitialized = bOk;
- return bOk;
+ return bOk;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Enabled or disable *this Logger from writing any data to registered clients.
+//++
+//------------------------------------------------------------------------------------
+// Details: Enabled or disable *this Logger from writing any data to registered
+// clients.
// Type: Method.
// Args: vbYes - (R) True = Logger enabled, false = disabled.
// Return: MIstatus::success - Functional succeeded.
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::SetEnabled(const bool vbYes)
-{
- m_bEnabled = vbYes;
+bool CMICmnLog::SetEnabled(const bool vbYes) {
+ m_bEnabled = vbYes;
- return MIstatus::success;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Retrieve state whether *this Logger is enabled writing data to registered clients.
+//++
+//------------------------------------------------------------------------------------
+// Details: Retrieve state whether *this Logger is enabled writing data to
+// registered clients.
// Type: Method.
// Args: None.
// Return: True = Logger enable.
// False = disabled.
// Throws: None.
//--
-bool
-CMICmnLog::GetEnabled() const
-{
- return m_bEnabled;
-}
+bool CMICmnLog::GetEnabled() const { return m_bEnabled; }
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Unregister all the Mediums registered with *this Logger.
// Type: Method.
// Args: None.
@@ -157,22 +156,20 @@ CMICmnLog::GetEnabled() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::UnregisterMediumAll()
-{
- MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
- for (; it != m_mapMediumToName.end(); it++)
- {
- IMedium *pMedium = (*it).first;
- pMedium->Shutdown();
- }
+bool CMICmnLog::UnregisterMediumAll() {
+ MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
+ for (; it != m_mapMediumToName.end(); it++) {
+ IMedium *pMedium = (*it).first;
+ pMedium->Shutdown();
+ }
- m_mapMediumToName.clear();
+ m_mapMediumToName.clear();
- return MIstatus::success;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Register a Medium with *this Logger.
// Type: Method.
// Args: vrMedium - (R) The medium to register.
@@ -180,28 +177,28 @@ CMICmnLog::UnregisterMediumAll()
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::RegisterMedium(const IMedium &vrMedium)
-{
- if (HaveMediumAlready(vrMedium))
- return MIstatus::success;
-
- IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
- if (!pMedium->Initialize())
- {
- const CMIUtilString &rStrMedName(pMedium->GetName());
- const CMIUtilString &rStrMedErr(pMedium->GetError());
- SetErrorDescription(CMIUtilString::Format(MIRSRC(IDS_LOG_MEDIUM_ERR_INIT), rStrMedName.c_str(), rStrMedErr.c_str()));
- return MIstatus::failure;
- }
+bool CMICmnLog::RegisterMedium(const IMedium &vrMedium) {
+ if (HaveMediumAlready(vrMedium))
+ return MIstatus::success;
- MapPairMediumToName_t pr(pMedium, pMedium->GetName());
- m_mapMediumToName.insert(pr);
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ if (!pMedium->Initialize()) {
+ const CMIUtilString &rStrMedName(pMedium->GetName());
+ const CMIUtilString &rStrMedErr(pMedium->GetError());
+ SetErrorDescription(CMIUtilString::Format(MIRSRC(IDS_LOG_MEDIUM_ERR_INIT),
+ rStrMedName.c_str(),
+ rStrMedErr.c_str()));
+ return MIstatus::failure;
+ }
- return MIstatus::success;
+ MapPairMediumToName_t pr(pMedium, pMedium->GetName());
+ m_mapMediumToName.insert(pr);
+
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Query the Logger to see if a medium is already registered.
// Type: Method.
// Args: vrMedium - (R) The medium to query.
@@ -209,18 +206,17 @@ CMICmnLog::RegisterMedium(const IMedium &vrMedium)
// False - not registered.
// Throws: None.
//--
-bool
-CMICmnLog::HaveMediumAlready(const IMedium &vrMedium) const
-{
- IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
- const MapMediumToName_t::const_iterator it = m_mapMediumToName.find(pMedium);
- if (it != m_mapMediumToName.end())
- return true;
-
- return false;
+bool CMICmnLog::HaveMediumAlready(const IMedium &vrMedium) const {
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ const MapMediumToName_t::const_iterator it = m_mapMediumToName.find(pMedium);
+ if (it != m_mapMediumToName.end())
+ return true;
+
+ return false;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Unregister a medium from the Logger.
// Type: Method.
// Args: vrMedium - (R) The medium to unregister.
@@ -228,22 +224,26 @@ CMICmnLog::HaveMediumAlready(const IMedium &vrMedium) const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::UnregisterMedium(const IMedium &vrMedium)
-{
- IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
- m_mapMediumToName.erase(pMedium);
+bool CMICmnLog::UnregisterMedium(const IMedium &vrMedium) {
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ m_mapMediumToName.erase(pMedium);
- return MIstatus::success;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
-// Details: The callee client uses this function to write to the Logger. The data to be
-// written is given out to all the mediums registered. The verbosity type parameter
-// indicates to the medium(s) the type of data or message given to it. The medium has
-// modes of verbosity and depending on the verbosity set determines which writes
+//++
+//------------------------------------------------------------------------------------
+// Details: The callee client uses this function to write to the Logger. The
+// data to be
+// written is given out to all the mediums registered. The verbosity
+// type parameter
+// indicates to the medium(s) the type of data or message given to it.
+// The medium has
+// modes of verbosity and depending on the verbosity set determines
+// which writes
// go in to the logger.
-// The logger must be initialized successfully before a write to any registered
+// The logger must be initialized successfully before a write to any
+// registered
// can be carried out.
// Type: Method.
// Args: vData - (R) The data to write to the logger.
@@ -252,58 +252,55 @@ CMICmnLog::UnregisterMedium(const IMedium &vrMedium)
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::Write(const CMIUtilString &vData, const ELogVerbosity veType)
-{
- if (!m_bInitialized && !m_bInitializingATM)
- return MIstatus::success;
- if (m_bRecursiveDive)
- return MIstatus::success;
- if (!m_bEnabled)
- return MIstatus::success;
-
- m_bRecursiveDive = true;
-
- MIuint cnt = 0;
- MIuint cntErr = 0;
- {
- MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
- while (it != m_mapMediumToName.end())
- {
- IMedium *pMedium = (*it).first;
- const CMIUtilString &rNameMedium = (*it).second;
- MIunused(rNameMedium);
- if (pMedium->Write(vData, veType))
- cnt++;
- else
- cntErr++;
-
- // Next
- ++it;
- }
- }
-
- bool bOk = MIstatus::success;
- const MIuint mediumCnt = m_mapMediumToName.size();
- if ((cnt == 0) && (mediumCnt > 0))
- {
- SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_ANY));
- bOk = MIstatus::failure;
- }
- if (bOk && (cntErr != 0))
- {
- SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_MEDIUMFAIL));
- bOk = MIstatus::failure;
- }
+bool CMICmnLog::Write(const CMIUtilString &vData, const ELogVerbosity veType) {
+ if (!m_bInitialized && !m_bInitializingATM)
+ return MIstatus::success;
+ if (m_bRecursiveDive)
+ return MIstatus::success;
+ if (!m_bEnabled)
+ return MIstatus::success;
- m_bRecursiveDive = false;
+ m_bRecursiveDive = true;
- return bOk;
+ MIuint cnt = 0;
+ MIuint cntErr = 0;
+ {
+ MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
+ while (it != m_mapMediumToName.end()) {
+ IMedium *pMedium = (*it).first;
+ const CMIUtilString &rNameMedium = (*it).second;
+ MIunused(rNameMedium);
+ if (pMedium->Write(vData, veType))
+ cnt++;
+ else
+ cntErr++;
+
+ // Next
+ ++it;
+ }
+ }
+
+ bool bOk = MIstatus::success;
+ const MIuint mediumCnt = m_mapMediumToName.size();
+ if ((cnt == 0) && (mediumCnt > 0)) {
+ SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_ANY));
+ bOk = MIstatus::failure;
+ }
+ if (bOk && (cntErr != 0)) {
+ SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_MEDIUMFAIL));
+ bOk = MIstatus::failure;
+ }
+
+ m_bRecursiveDive = false;
+
+ return bOk;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Short cut function call to write only to the Log file.
-// The logger must be initialized successfully before a write to any registered
+// The logger must be initialized successfully before a write to any
+// registered
// can be carried out.
// Type: Static.
// Args: vData - (R) The data to write to the logger.
@@ -311,47 +308,42 @@ CMICmnLog::Write(const CMIUtilString &vData, const ELogVerbosity veType)
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLog::WriteLog(const CMIUtilString &vData)
-{
- return CMICmnLog::Instance().Write(vData, CMICmnLog::eLogVerbosity_Log);
+bool CMICmnLog::WriteLog(const CMIUtilString &vData) {
+ return CMICmnLog::Instance().Write(vData, CMICmnLog::eLogVerbosity_Log);
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve a string detailing the last error.
// Type: Method.
// Args: None,
// Return: CMIUtilString.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLog::GetErrorDescription() const
-{
- return m_strMILastErrorDescription;
+const CMIUtilString &CMICmnLog::GetErrorDescription() const {
+ return m_strMILastErrorDescription;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Set the internal description of the last error.
// Type: Method.
// Args: (R) String containing a description of the last error.
// Return: None.
// Throws: None.
//--
-void
-CMICmnLog::SetErrorDescription(const CMIUtilString &vrTxt) const
-{
- m_strMILastErrorDescription = vrTxt;
+void CMICmnLog::SetErrorDescription(const CMIUtilString &vrTxt) const {
+ m_strMILastErrorDescription = vrTxt;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Clear the last error.
// Type: None.
// Args: None.
// Return: None.
// Throws: None.
//--
-void
-CMICmnLog::ClrErrorDescription() const
-{
- m_strMILastErrorDescription = CMIUtilString("");
+void CMICmnLog::ClrErrorDescription() const {
+ m_strMILastErrorDescription = CMIUtilString("");
}
OpenPOWER on IntegriCloud