]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h
MFV r276759: libpcap 1.6.2.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / 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 //++
11 // File:                MICmnLogMediumFile.h
12 //
13 // Overview:    CMICmnLogMediumFile interface.
14 //
15 // Environment: Compilers:      Visual C++ 12.
16 //                                                      gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17 //                              Libraries:      See MIReadmetxt. 
18 //
19 // Copyright:   None.
20 //--
21
22 #pragma once
23
24 // In-house headers:
25 #include "MIUtilFileStd.h"
26 #include "MIUtilString.h"  
27 #include "MICmnBase.h"
28 #include "MICmnLog.h"
29 #include "MIUtilDateTimeStd.h"
30
31 //++ ============================================================================
32 // Details:     MI common code implementation class. Logs application fn trace/message/
33 //                      error messages to a file. Used as part of the CMICmnLog Logger
34 //                      system. When instantiated *this object is register with the Logger
35 //                      which the Logger when given data to write to registered medium comes
36 //                      *this medium.
37 //                      Singleton class.
38 // Gotchas:     None.
39 // Authors:     Illya Rudkin 30/01/2014.
40 // Changes:     None.
41 //--
42 class CMICmnLogMediumFile
43 :       public CMICmnBase
44 ,       public CMICmnLog::IMedium
45 {
46 // Statics:
47 public:
48         static  CMICmnLogMediumFile &   Instance( void );
49
50 // Methods:
51 public:
52         bool                                    SetHeaderTxt( const CMIUtilString & vText );
53         bool                                    SetVerbosity( const MIuint veType );
54         MIuint                                  GetVerbosity( void ) const;
55         const CMIUtilString &   GetFileName( void ) const;
56         const CMIUtilString &   GetFileNamePath( void ) const;
57         bool                                    IsOk( void ) const;
58         bool                                    IsFileExist( void ) const;
59         const CMIUtilString &   GetLineReturn( void ) const;
60
61 // Overridden:
62 public:
63         // From CMICmnBase
64         /* dtor */ virtual ~CMICmnLogMediumFile( void );
65         // From CMICmnLog::IMedium
66         virtual bool                                    Initialize( void );
67         virtual const CMIUtilString &   GetName( void ) const;
68         virtual bool                                    Write( const CMIUtilString & vData, const CMICmnLog::ELogVerbosity veType );
69         virtual const CMIUtilString &   GetError( void ) const;
70         virtual bool                                    Shutdown( void );
71
72 // Methods:
73 private:
74         /* ctor */      CMICmnLogMediumFile( void );
75         /* ctor */      CMICmnLogMediumFile( const CMICmnLogMediumFile & );
76         void            operator=( const CMICmnLogMediumFile & );
77         
78         bool                    FileWriteEnglish( const CMIUtilString & vData );
79         bool                    FileFormFileNamePath( void );
80         CMIUtilString   MassagedData( const CMIUtilString & vData, const CMICmnLog::ELogVerbosity veType );
81         bool                    FileWriteHeader( void );
82         MIchar                  ConvertLogVerbosityTypeToId( const CMICmnLog::ELogVerbosity veType ) const;
83         CMIUtilString   ConvertCr( const CMIUtilString & vData ) const;
84
85 // Attributes:
86 private:
87         const CMIUtilString     m_constThisMediumName;
88         const CMIUtilString     m_constMediumFileName;
89         //
90         CMIUtilString           m_fileNamePath;
91         MIuint                          m_eVerbosityType;
92         CMIUtilString           m_strDate;
93         CMIUtilString           m_fileHeaderTxt;
94         CMIUtilFileStd          m_file;
95         CMIUtilDateTimeStd      m_dateTime;
96 };