diff options
Diffstat (limited to 'tools/lldb-mi/MICmnLogMediumFile.cpp')
-rw-r--r-- | tools/lldb-mi/MICmnLogMediumFile.cpp | 385 |
1 files changed, 0 insertions, 385 deletions
diff --git a/tools/lldb-mi/MICmnLogMediumFile.cpp b/tools/lldb-mi/MICmnLogMediumFile.cpp deleted file mode 100644 index 7fbe28f3fe0f..000000000000 --- a/tools/lldb-mi/MICmnLogMediumFile.cpp +++ /dev/null @@ -1,385 +0,0 @@ -//===-- MICmnLogMediumFile.cpp ----------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -// In-house headers: -#include "MICmnLogMediumFile.h" -#include "MICmnResources.h" - -//++ -// Details: CMICmnLogMediumFile constructor. -// Type: Method. -// Args: None. -// Return: None. -// 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)) {} - -//++ -// Details: CMICmnLogMediumFile destructor. -// Type: Overridden. -// Args: None. -// Return: None. -// Throws: None. -//-- -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; - - return instance; -} - -//++ -// Details: Initialize setup *this medium ready for use. -// Type: Overridden. -// Args: None. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. -// Throws: None. -//-- -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; -} - -//++ -// 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; -} - -//++ -// 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. -// veType - (R) Verbosity type. -// Return: MIstatus::success - Functional succeeded. -// 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; - } - } - - 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; -} - -//++ -// Details: Set the verbosity mode for this medium. -// Type: Method. -// Args: veType - (R) Mask value. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. -// Throws: None. -//-- -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; } - -//++ -// 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); -} - -//++ -// Details: Determine and form the medium file's directory path and name. -// Type: Method. -// Args: None. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. -// Throws: None. -//-- -bool CMICmnLogMediumFile::FileFormFileNamePath() { - ClrErrorDescription(); - - m_fileNamePath = MIRSRC(IDS_MEDIUMFILE_ERR_INVALID_PATH); - - 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()); -#else - m_fileNamePath = CMIUtilString::Format( - "%s/%s", m_strMediumFileDirectory.c_str(), m_strMediumFileName.c_str()); -#endif // defined ( _MSC_VER ) - - 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; -} - -//++ -// 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; -} - -//++ -// 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. -// Return: CMIUtilString - Massaged data. -// 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; - - // ... did not have an EOL so add one - data += GetLineReturn(); - - return data; -} - -//++ -// 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 = '*'; - } - - return c; -} - -//++ -// Details: Retrieve state of whether the file medium is ok. -// Type: Method. -// Args: None. -// Return: True - file ok. -// False - file has a problem. -// Throws: None. -//-- -bool CMICmnLogMediumFile::IsOk() const { return m_file.IsOk(); } - -//++ -// Details: Status on the file log medium existing already. -// Type: Method. -// Args: None. -// Return: True - Exists. -// False - Not found. -// Throws: None. -//-- -bool CMICmnLogMediumFile::IsFileExist() const { - return m_file.IsFileExist(GetFileNamePath()); -} - -//++ -// Details: Write the header text the logger file. -// Type: Method. -// Args: vText - (R) Text. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. -// Throws: None. -//-- -bool CMICmnLogMediumFile::FileWriteHeader() { - return FileWriteEnglish(ConvertCr(m_fileHeaderTxt)); -} - -//++ -// 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; -} - -//++ -// 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; - - 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(); -} - -//++ -// Details: Set the directory to place the log file. -// Type: Method. -// Args: vPath - (R) Path to log. -// Return: MIstatus::success - Functional succeeded. -// MIstatus::failure - Functional failed. -// Throws: None. -//-- -bool CMICmnLogMediumFile::SetDirectory(const CMIUtilString &vPath) { - m_strMediumFileDirectory = vPath; - - return FileFormFileNamePath(); -} |