summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-mi/MICmnLogMediumFile.cpp')
-rw-r--r--lldb/tools/lldb-mi/MICmnLogMediumFile.cpp400
1 files changed, 192 insertions, 208 deletions
diff --git a/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp b/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp
index a1dbf53c60a..9f94caf3be7 100644
--- a/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp
+++ b/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp
@@ -11,7 +11,8 @@
#include "MICmnLogMediumFile.h"
#include "MICmnResources.h"
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmnLogMediumFile constructor.
// Type: Method.
// Args: None.
@@ -19,44 +20,41 @@
// Throws: None.
//--
CMICmnLogMediumFile::CMICmnLogMediumFile()
- : m_constThisMediumName(MIRSRC(IDS_MEDIUMFILE_NAME))
- , m_constMediumFileNameFormat("lldb-mi-%s.log")
- , m_strMediumFileName(MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH))
- , m_strMediumFileDirectory(".")
- , m_fileNamePath(MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH))
- , m_eVerbosityType(CMICmnLog::eLogVerbosity_Log)
- , m_strDate(CMIUtilDateTimeStd().GetDate())
- , m_fileHeaderTxt(MIRSRC(IDS_MEDIUMFILE_ERR_FILE_HEADER))
-{
-}
-
-//++ ------------------------------------------------------------------------------------
+ : m_constThisMediumName(MIRSRC(IDS_MEDIUMFILE_NAME)),
+ m_constMediumFileNameFormat("lldb-mi-%s.log"),
+ m_strMediumFileName(MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH)),
+ m_strMediumFileDirectory("."),
+ m_fileNamePath(MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH)),
+ m_eVerbosityType(CMICmnLog::eLogVerbosity_Log),
+ m_strDate(CMIUtilDateTimeStd().GetDate()),
+ m_fileHeaderTxt(MIRSRC(IDS_MEDIUMFILE_ERR_FILE_HEADER)) {}
+
+//++
+//------------------------------------------------------------------------------------
// Details: CMICmnLogMediumFile destructor.
// Type: Overridden.
// Args: None.
// Return: None.
// Throws: None.
//--
-CMICmnLogMediumFile::~CMICmnLogMediumFile()
-{
-}
+CMICmnLogMediumFile::~CMICmnLogMediumFile() {}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Get the singleton instance of *this class.
// Type: Static.
// Args: None.
// Return: CMICmnLogMediumFile - Reference to *this object.
// Throws: None.
//--
-CMICmnLogMediumFile &
-CMICmnLogMediumFile::Instance()
-{
- static CMICmnLogMediumFile instance;
+CMICmnLogMediumFile &CMICmnLogMediumFile::Instance() {
+ static CMICmnLogMediumFile instance;
- return instance;
+ return instance;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Initialize setup *this medium ready for use.
// Type: Overridden.
// Args: None.
@@ -64,49 +62,49 @@ CMICmnLogMediumFile::Instance()
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::Initialize()
-{
- m_bInitialized = true;
- return FileFormFileNamePath();
+bool CMICmnLogMediumFile::Initialize() {
+ m_bInitialized = true;
+ return FileFormFileNamePath();
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Unbind detach or release resources used by *this medium.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::Shutdown()
-{
- if (m_bInitialized)
- {
- m_bInitialized = false;
- m_file.Close();
- }
- return MIstatus::success;
+bool CMICmnLogMediumFile::Shutdown() {
+ if (m_bInitialized) {
+ m_bInitialized = false;
+ m_file.Close();
+ }
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve the name of *this medium.
// Type: Overridden.
// Args: None.
// Return: CMIUtilString - Text data.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLogMediumFile::GetName() const
-{
- return m_constThisMediumName;
+const CMIUtilString &CMICmnLogMediumFile::GetName() const {
+ return m_constThisMediumName;
}
-//++ ------------------------------------------------------------------------------------
-// Details: The callee client calls the write function on the Logger. The data to be
-// written is given out to all the mediums registered. The verbosity type parameter
-// indicates to the medium the type of data or message given to it. The medium has
-// modes of verbosity and depending on the verbosity set determines which data is
+//++
+//------------------------------------------------------------------------------------
+// Details: The callee client calls the write function on the Logger. The data
+// to be
+// written is given out to all the mediums registered. The verbosity
+// type parameter
+// indicates to the medium the type of data or message given to it. The
+// medium has
+// modes of verbosity and depending on the verbosity set determines
+// which data is
// sent to the medium's output.
// Type: Method.
// Args: vData - (R) The data to write to the logger.
@@ -115,43 +113,39 @@ CMICmnLogMediumFile::GetName() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::Write(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType)
-{
- if (m_bInitialized && m_file.IsOk())
- {
- const bool bDoWrite = (m_eVerbosityType & veType);
- if (bDoWrite)
- {
- bool bNewCreated = false;
- bool bOk = m_file.CreateWrite(m_fileNamePath, bNewCreated);
- if (bOk)
- {
- if (bNewCreated)
- bOk = FileWriteHeader();
- bOk = bOk && FileWriteEnglish(MassagedData(vData, veType));
- }
- return bOk;
- }
+bool CMICmnLogMediumFile::Write(const CMIUtilString &vData,
+ const CMICmnLog::ELogVerbosity veType) {
+ if (m_bInitialized && m_file.IsOk()) {
+ const bool bDoWrite = (m_eVerbosityType & veType);
+ if (bDoWrite) {
+ bool bNewCreated = false;
+ bool bOk = m_file.CreateWrite(m_fileNamePath, bNewCreated);
+ if (bOk) {
+ if (bNewCreated)
+ bOk = FileWriteHeader();
+ bOk = bOk && FileWriteEnglish(MassagedData(vData, veType));
+ }
+ return bOk;
}
+ }
- return MIstatus::failure;
+ return MIstatus::failure;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve *this medium's last error condition.
// Type: Method.
// Args: None.
// Return: CString & - Text description.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLogMediumFile::GetError() const
-{
- return m_strMILastErrorDescription;
+const CMIUtilString &CMICmnLogMediumFile::GetError() const {
+ return m_strMILastErrorDescription;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Set the verbosity mode for this medium.
// Type: Method.
// Args: veType - (R) Mask value.
@@ -159,40 +153,35 @@ CMICmnLogMediumFile::GetError() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::SetVerbosity(const MIuint veType)
-{
- m_eVerbosityType = veType;
- return MIstatus::success;
+bool CMICmnLogMediumFile::SetVerbosity(const MIuint veType) {
+ m_eVerbosityType = veType;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Get the verbosity mode for this medium.
// Type: Method.
// Args: veType - (R) Mask value.
// Return: CMICmnLog::ELogVerbosity - Mask value.
// Throws: None.
//--
-MIuint
-CMICmnLogMediumFile::GetVerbosity() const
-{
- return m_eVerbosityType;
-}
+MIuint CMICmnLogMediumFile::GetVerbosity() const { return m_eVerbosityType; }
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Write data to a file English font.
// Type: Method.
// Args: vData - (R) The data to write to the logger.
// Return: None.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::FileWriteEnglish(const CMIUtilString &vData)
-{
- return m_file.Write(vData);
+bool CMICmnLogMediumFile::FileWriteEnglish(const CMIUtilString &vData) {
+ return m_file.Write(vData);
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Determine and form the medium file's directory path and name.
// Type: Method.
// Args: None.
@@ -200,55 +189,59 @@ CMICmnLogMediumFile::FileWriteEnglish(const CMIUtilString &vData)
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::FileFormFileNamePath()
-{
- ClrErrorDescription();
+bool CMICmnLogMediumFile::FileFormFileNamePath() {
+ ClrErrorDescription();
- m_fileNamePath = MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH);
+ m_fileNamePath = MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH);
- CMIUtilDateTimeStd date;
- m_strMediumFileName = CMIUtilString::Format(m_constMediumFileNameFormat.c_str(), date.GetDateTimeLogFilename().c_str());
+ CMIUtilDateTimeStd date;
+ m_strMediumFileName =
+ CMIUtilString::Format(m_constMediumFileNameFormat.c_str(),
+ date.GetDateTimeLogFilename().c_str());
#if defined(_MSC_VER)
- m_fileNamePath = CMIUtilString::Format("%s\\%s", m_strMediumFileDirectory.c_str(), m_strMediumFileName.c_str());
+ m_fileNamePath = CMIUtilString::Format(
+ "%s\\%s", m_strMediumFileDirectory.c_str(), m_strMediumFileName.c_str());
#else
- m_fileNamePath = CMIUtilString::Format("%s/%s", m_strMediumFileDirectory.c_str(), m_strMediumFileName.c_str());
+ m_fileNamePath = CMIUtilString::Format(
+ "%s/%s", m_strMediumFileDirectory.c_str(), m_strMediumFileName.c_str());
#endif // defined ( _MSC_VER )
- return MIstatus::success;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve the medium file's directory path and name.
// Type: Method.
// Args: None.
// Return: CMIUtilString & - File path.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLogMediumFile::GetFileNamePath() const
-{
- return m_fileNamePath;
+const CMIUtilString &CMICmnLogMediumFile::GetFileNamePath() const {
+ return m_fileNamePath;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve the medium file's name.
// Type: Method.
// Args: None.
// Return: CMIUtilString & - File name.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLogMediumFile::GetFileName() const
-{
- return m_strMediumFileName;
+const CMIUtilString &CMICmnLogMediumFile::GetFileName() const {
+ return m_strMediumFileName;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Massage the data to behave correct when submitted to file. Insert extra log
-// specific text. The veType is there to allow in the future to parse the log and
-// filter in out specific types of message to make viewing the log more manageable.
+//++
+//------------------------------------------------------------------------------------
+// Details: Massage the data to behave correct when submitted to file. Insert
+// extra log
+// specific text. The veType is there to allow in the future to parse
+// the log and
+// filter in out specific types of message to make viewing the log more
+// manageable.
// Type: Method.
// Args: vData - (R) Raw data.
// veType - (R) Message type.
@@ -256,58 +249,58 @@ CMICmnLogMediumFile::GetFileName() const
// Throws: None.
//--
CMIUtilString
-CMICmnLogMediumFile::MassagedData(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType)
-{
- const CMIUtilString strCr("\n");
- CMIUtilString data;
- const char verbosityCode(ConvertLogVerbosityTypeToId(veType));
- const CMIUtilString dt(CMIUtilString::Format("%s %s", m_strDate.c_str(), m_dateTime.GetTime().c_str()));
-
- data = CMIUtilString::Format("%c,%s,%s", verbosityCode, dt.c_str(), vData.c_str());
- data = ConvertCr(data);
-
- // Look for EOL...
- const size_t pos = vData.rfind(strCr);
- if (pos == vData.size())
- return data;
+CMICmnLogMediumFile::MassagedData(const CMIUtilString &vData,
+ const CMICmnLog::ELogVerbosity veType) {
+ const CMIUtilString strCr("\n");
+ CMIUtilString data;
+ const char verbosityCode(ConvertLogVerbosityTypeToId(veType));
+ const CMIUtilString dt(CMIUtilString::Format("%s %s", m_strDate.c_str(),
+ m_dateTime.GetTime().c_str()));
+
+ data = CMIUtilString::Format("%c,%s,%s", verbosityCode, dt.c_str(),
+ vData.c_str());
+ data = ConvertCr(data);
+
+ // Look for EOL...
+ const size_t pos = vData.rfind(strCr);
+ if (pos == vData.size())
+ return data;
- // ... did not have an EOL so add one
- data += GetLineReturn();
+ // ... did not have an EOL so add one
+ data += GetLineReturn();
- return data;
+ return data;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Convert the Log's verbosity type number into a single char character.
+//++
+//------------------------------------------------------------------------------------
+// Details: Convert the Log's verbosity type number into a single char
+// character.
// Type: Method.
// Args: veType - (R) Message type.
// Return: wchar_t - A letter.
// Throws: None.
//--
-char
-CMICmnLogMediumFile::ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const
-{
- char c = 0;
- if (veType != 0)
- {
- MIuint cnt = 0;
- MIuint number(veType);
- while (1 != number)
- {
- number = number >> 1;
- ++cnt;
- }
- c = 'A' + cnt;
- }
- else
- {
- c = '*';
+char CMICmnLogMediumFile::ConvertLogVerbosityTypeToId(
+ const CMICmnLog::ELogVerbosity veType) const {
+ char c = 0;
+ if (veType != 0) {
+ MIuint cnt = 0;
+ MIuint number(veType);
+ while (1 != number) {
+ number = number >> 1;
+ ++cnt;
}
+ c = 'A' + cnt;
+ } else {
+ c = '*';
+ }
- return c;
+ return c;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve state of whether the file medium is ok.
// Type: Method.
// Args: None.
@@ -315,13 +308,10 @@ CMICmnLogMediumFile::ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity
// False - file has a problem.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::IsOk() const
-{
- return m_file.IsOk();
-}
+bool CMICmnLogMediumFile::IsOk() const { return m_file.IsOk(); }
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Status on the file log medium existing already.
// Type: Method.
// Args: None.
@@ -329,13 +319,12 @@ CMICmnLogMediumFile::IsOk() const
// False - Not found.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::IsFileExist() const
-{
- return m_file.IsFileExist(GetFileNamePath());
+bool CMICmnLogMediumFile::IsFileExist() const {
+ return m_file.IsFileExist(GetFileNamePath());
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Write the header text the logger file.
// Type: Method.
// Args: vText - (R) Text.
@@ -343,72 +332,69 @@ CMICmnLogMediumFile::IsFileExist() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::FileWriteHeader()
-{
- return FileWriteEnglish(ConvertCr(m_fileHeaderTxt));
+bool CMICmnLogMediumFile::FileWriteHeader() {
+ return FileWriteEnglish(ConvertCr(m_fileHeaderTxt));
}
-//++ ------------------------------------------------------------------------------------
-// Details: Convert any carriage line returns to be compatible with the platform the
+//++
+//------------------------------------------------------------------------------------
+// Details: Convert any carriage line returns to be compatible with the platform
+// the
// Log file is being written to.
// Type: Method.
// Args: vData - (R) Text data.
// Return: CMIUtilString - Converted string data.
// Throws: None.
//--
-CMIUtilString
-CMICmnLogMediumFile::ConvertCr(const CMIUtilString &vData) const
-{
- const CMIUtilString strCr("\n");
- const CMIUtilString &rCrCmpat(GetLineReturn());
-
- if (strCr == rCrCmpat)
- return vData;
-
- const size_t nSizeCmpat(rCrCmpat.size());
- const size_t nSize(strCr.size());
- CMIUtilString strConv(vData);
- size_t pos = strConv.find(strCr);
- while (pos != CMIUtilString::npos)
- {
- strConv.replace(pos, nSize, rCrCmpat);
- pos = strConv.find(strCr, pos + nSizeCmpat);
- }
-
- return strConv;
+CMIUtilString CMICmnLogMediumFile::ConvertCr(const CMIUtilString &vData) const {
+ const CMIUtilString strCr("\n");
+ const CMIUtilString &rCrCmpat(GetLineReturn());
+
+ if (strCr == rCrCmpat)
+ return vData;
+
+ const size_t nSizeCmpat(rCrCmpat.size());
+ const size_t nSize(strCr.size());
+ CMIUtilString strConv(vData);
+ size_t pos = strConv.find(strCr);
+ while (pos != CMIUtilString::npos) {
+ strConv.replace(pos, nSize, rCrCmpat);
+ pos = strConv.find(strCr, pos + nSizeCmpat);
+ }
+
+ return strConv;
}
-//++ ------------------------------------------------------------------------------------
-// Details: Set the header text that is written to the logger file at the beginning.
+//++
+//------------------------------------------------------------------------------------
+// Details: Set the header text that is written to the logger file at the
+// beginning.
// Type: Method.
// Args: vText - (R) Text.
// Return: MIstatus::success - Functional succeeded.
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::SetHeaderTxt(const CMIUtilString &vText)
-{
- m_fileHeaderTxt = vText;
+bool CMICmnLogMediumFile::SetHeaderTxt(const CMIUtilString &vText) {
+ m_fileHeaderTxt = vText;
- return MIstatus::success;
+ return MIstatus::success;
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Retrieve the file current carriage line return characters used.
// Type: Method.
// Args: None.
// Return: CMIUtilString & - Text.
// Throws: None.
//--
-const CMIUtilString &
-CMICmnLogMediumFile::GetLineReturn() const
-{
- return m_file.GetLineReturn();
+const CMIUtilString &CMICmnLogMediumFile::GetLineReturn() const {
+ return m_file.GetLineReturn();
}
-//++ ------------------------------------------------------------------------------------
+//++
+//------------------------------------------------------------------------------------
// Details: Set the directory to place the log file.
// Type: Method.
// Args: vPath - (R) Path to log.
@@ -416,10 +402,8 @@ CMICmnLogMediumFile::GetLineReturn() const
// MIstatus::failure - Functional failed.
// Throws: None.
//--
-bool
-CMICmnLogMediumFile::SetDirectory(const CMIUtilString &vPath)
-{
- m_strMediumFileDirectory = vPath;
+bool CMICmnLogMediumFile::SetDirectory(const CMIUtilString &vPath) {
+ m_strMediumFileDirectory = vPath;
- return FileFormFileNamePath();
+ return FileFormFileNamePath();
}
OpenPOWER on IntegriCloud