]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/lldb-mi/MICmnLogMediumFile.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / tools / lldb-mi / MICmnLogMediumFile.h
1 //===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #pragma once
11
12 // In-house headers:
13 #include "MICmnBase.h"
14 #include "MICmnLog.h"
15 #include "MIUtilDateTimeStd.h"
16 #include "MIUtilFileStd.h"
17 #include "MIUtilString.h"
18
19 //++
20 //============================================================================
21 // Details: MI common code implementation class. Logs application fn
22 // trace/message/
23 //          error messages to a file. Used as part of the CMICmnLog Logger
24 //          system. When instantiated *this object is register with the Logger
25 //          which the Logger when given data to write to registered medium comes
26 //          *this medium.
27 //          Singleton class.
28 //--
29 class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium {
30   // Statics:
31 public:
32   static CMICmnLogMediumFile &Instance();
33
34   // Methods:
35 public:
36   bool SetHeaderTxt(const CMIUtilString &vText);
37   bool SetVerbosity(const MIuint veType);
38   MIuint GetVerbosity() const;
39   const CMIUtilString &GetFileName() const;
40   const CMIUtilString &GetFileNamePath() const;
41   bool IsOk() const;
42   bool IsFileExist() const;
43   const CMIUtilString &GetLineReturn() const;
44   bool SetDirectory(const CMIUtilString &vPath);
45
46   // Overridden:
47 public:
48   // From CMICmnBase
49   /* dtor */ ~CMICmnLogMediumFile() override;
50   // From CMICmnLog::IMedium
51   bool Initialize() override;
52   const CMIUtilString &GetName() const override;
53   bool Write(const CMIUtilString &vData,
54              const CMICmnLog::ELogVerbosity veType) override;
55   const CMIUtilString &GetError() const override;
56   bool Shutdown() override;
57
58   // Methods:
59 private:
60   /* ctor */ CMICmnLogMediumFile();
61   /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &);
62   void operator=(const CMICmnLogMediumFile &);
63
64   bool FileWriteEnglish(const CMIUtilString &vData);
65   bool FileFormFileNamePath();
66   CMIUtilString MassagedData(const CMIUtilString &vData,
67                              const CMICmnLog::ELogVerbosity veType);
68   bool FileWriteHeader();
69   char ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const;
70   CMIUtilString ConvertCr(const CMIUtilString &vData) const;
71
72   // Attributes:
73 private:
74   const CMIUtilString m_constThisMediumName;
75   const CMIUtilString m_constMediumFileNameFormat;
76   //
77   CMIUtilString m_strMediumFileName;
78   CMIUtilString m_strMediumFileDirectory;
79   CMIUtilString m_fileNamePath;
80   MIuint m_eVerbosityType;
81   CMIUtilString m_strDate;
82   CMIUtilString m_fileHeaderTxt;
83   CMIUtilFileStd m_file;
84   CMIUtilDateTimeStd m_dateTime;
85 };