1 //===-- MICmnLogMediumFile.h ------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
11 // File: MICmnLogMediumFile.h
13 // Overview: CMICmnLogMediumFile interface.
15 // Environment: Compilers: Visual C++ 12.
16 // gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17 // Libraries: See MIReadmetxt.
25 #include "MIUtilFileStd.h"
26 #include "MIUtilString.h"
27 #include "MICmnBase.h"
29 #include "MIUtilDateTimeStd.h"
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
39 // Authors: Illya Rudkin 30/01/2014.
42 class CMICmnLogMediumFile : public CMICmnBase, public CMICmnLog::IMedium
46 static CMICmnLogMediumFile &Instance(void);
50 bool SetHeaderTxt(const CMIUtilString &vText);
51 bool SetVerbosity(const MIuint veType);
52 MIuint GetVerbosity(void) const;
53 const CMIUtilString &GetFileName(void) const;
54 const CMIUtilString &GetFileNamePath(void) const;
55 bool IsOk(void) const;
56 bool IsFileExist(void) const;
57 const CMIUtilString &GetLineReturn(void) const;
62 /* dtor */ virtual ~CMICmnLogMediumFile(void);
63 // From CMICmnLog::IMedium
64 virtual bool Initialize(void);
65 virtual const CMIUtilString &GetName(void) const;
66 virtual bool Write(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType);
67 virtual const CMIUtilString &GetError(void) const;
68 virtual bool Shutdown(void);
72 /* ctor */ CMICmnLogMediumFile(void);
73 /* ctor */ CMICmnLogMediumFile(const CMICmnLogMediumFile &);
74 void operator=(const CMICmnLogMediumFile &);
76 bool FileWriteEnglish(const CMIUtilString &vData);
77 bool FileFormFileNamePath(void);
78 CMIUtilString MassagedData(const CMIUtilString &vData, const CMICmnLog::ELogVerbosity veType);
79 bool FileWriteHeader(void);
80 MIchar ConvertLogVerbosityTypeToId(const CMICmnLog::ELogVerbosity veType) const;
81 CMIUtilString ConvertCr(const CMIUtilString &vData) const;
85 const CMIUtilString m_constThisMediumName;
86 const CMIUtilString m_constMediumFileName;
88 CMIUtilString m_fileNamePath;
89 MIuint m_eVerbosityType;
90 CMIUtilString m_strDate;
91 CMIUtilString m_fileHeaderTxt;
92 CMIUtilFileStd m_file;
93 CMIUtilDateTimeStd m_dateTime;