| //===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #pragma once |
| |
| // In-house headers: |
| #include "MICmnBase.h" |
| #include "MICmnLog.h" |
| #include "MIUtilDateTimeStd.h" |
| #include "MIUtilFileStd.h" |
| #include "MIUtilString.h" |
| |
| //++ |
| //============================================================================ |
| // Details: MI common code implementation class. Logs application fn |
| // trace/message/ |
| // error messages to a file. Used as part of the CMICmnLog Logger |
| // system. When instantiated *this object is register with the Logger |
| // which the Logger when given data to write to registered medium comes |
| // *this medium. |
| // Singleton class. |
| //-- |
| class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium { |
| // Statics: |
| public: |
| static CMICmnLogMediumFile &Instance(); |
| |
| // Methods: |
| public: |
| bool SetHeaderTxt(const CMIUtilString &vText); |
| bool SetVerbosity(const MIuint veType); |
| MIuint GetVerbosity() const; |
| const CMIUtilString &GetFileName() const; |
| const CMIUtilString &GetFileNamePath() const; |
| bool IsOk() const; |
| bool IsFileExist() const; |
| const CMIUtilString &GetLineReturn() const; |
| bool SetDirectory(const CMIUtilString &vPath); |
| |
| // Overridden: |
| public: |
| // From CMICmnBase |
| /* dtor */ ~CMICmnLogMediumFile() override; |
| // From CMICmnLog::IMedium |
| bool Initialize() override; |
| const CMIUtilString &GetName() const override; |
| bool Write(const CMIUtilString &vData, |
| const CMICmnLog::ELogVerbosity veType) override; |
| const CMIUtilString &GetError() const override; |
| bool Shutdown() override; |
| |
| // Methods: |
| private: |
| /* ctor */ CMICmnLogMediumFile(); |
| /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &); |
| void operator=(const CMICmnLogMediumFile &); |
| |
| bool FileWriteEnglish(const CMIUtilString &vData); |
| bool FileFormFileNamePath(); |
| CMIUtilString MassagedData(const CMIUtilString &vData, |
| const CMICmnLog::ELogVerbosity veType); |
| bool FileWriteHeader(); |
| char ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const; |
| CMIUtilString ConvertCr(const CMIUtilString &vData) const; |
| |
| // Attributes: |
| private: |
| const CMIUtilString m_constThisMediumName; |
| const CMIUtilString m_constMediumFileNameFormat; |
| // |
| CMIUtilString m_strMediumFileName; |
| CMIUtilString m_strMediumFileDirectory; |
| CMIUtilString m_fileNamePath; |
| MIuint m_eVerbosityType; |
| CMIUtilString m_strDate; |
| CMIUtilString m_fileHeaderTxt; |
| CMIUtilFileStd m_file; |
| CMIUtilDateTimeStd m_dateTime; |
| }; |