aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmnLog.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnLog.h')
-rw-r--r--tools/lldb-mi/MICmnLog.h228
1 files changed, 114 insertions, 114 deletions
diff --git a/tools/lldb-mi/MICmnLog.h b/tools/lldb-mi/MICmnLog.h
index 57288237840d..6884b614896d 100644
--- a/tools/lldb-mi/MICmnLog.h
+++ b/tools/lldb-mi/MICmnLog.h
@@ -8,15 +8,15 @@
//===----------------------------------------------------------------------===//
//++
-// File: MICmnLog.h
+// File: MICmnLog.h
//
-// Overview: CMICmnLog interface.
+// Overview: CMICmnLog interface.
//
-// Environment: Compilers: Visual C++ 12.
-// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
-// Libraries: See MIReadmetxt.
+// Environment: Compilers: Visual C++ 12.
+// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
+// Libraries: See MIReadmetxt.
//
-// Copyright: None.
+// Copyright: None.
//--
#pragma once
@@ -30,114 +30,114 @@
#include "MIUtilSingletonBase.h"
//++ ============================================================================
-// Details: MI common code implementation class. Handle application trace
-// activity logging. Medium objects derived from the Medium abstract
-/// class are registered with this loggor. The function Write is called
-// by a client callee to log information. That information is given to
-// registered relevant mediums. The medium file is registered during
-// *this logs initialization so it will always have a file log for the
-// application.
-// Singleton class.
-// Gotchas: None.
-// Authors: Illya Rudkin 01/02/2012.
-// Changes: None.
+// Details: MI common code implementation class. Handle application trace
+// activity logging. Medium objects derived from the Medium abstract
+/// class are registered with this loggor. The function Write is called
+// by a client callee to log information. That information is given to
+// registered relevant mediums. The medium file is registered during
+// *this logs initialization so it will always have a file log for the
+// application.
+// Singleton class.
+// Gotchas: None.
+// Authors: Illya Rudkin 01/02/2012.
+// Changes: None.
//--
-class CMICmnLog : public MI::ISingleton< CMICmnLog >
+class CMICmnLog : public MI::ISingleton<CMICmnLog>
{
- friend MI::ISingleton< CMICmnLog >;
-
-// Enumeration:
-public:
- //++
- // Description: Data given to the Logger can be of serveral types. The Logger can be
- // set at levels of verbosity. Can determine how data is sent to one or
- // mediums.
- //--
- enum ELogVerbosity
- { // Descriptions of what 'may' occur, depends ultimately on the medium itself. See the medium.
- eLogVerbosity_FnTrace = 0x00000004, // Debug function stack call tracing
- eLogVerbosity_DbgOp = 0x00000008, // Send a string to the debugguer for display (not implemented)
- eLogVerbosity_ClientMsg = 0x00000010, // A client using MI can insert messages into the log (not implemented)
- eLogVerbosity_Log = 0x00000020 // Send to only the Log file.
- };
-
-// Class:
-public:
- //++
- // Description: Register a medium derived from this interface which will be
- // called writing log trace data i.e. a file or a console.
- // Medium objects registered are not owned by *this logger.
- //--
- class IMedium
- {
- public:
- virtual bool Initialize( void ) = 0;
- virtual const CMIUtilString & GetName( void ) const = 0;
- virtual bool Write( const CMIUtilString & vData, const ELogVerbosity veType ) = 0;
- virtual const CMIUtilString & GetError( void ) const = 0;
- virtual bool Shutdown( void ) = 0;
-
- // Not part of the interface, ignore
- //AD: This virtual destructor seems to hit a bug in the stdlib
- // where vector delete is incorrectly called. Workaround is
- // to comment this out while I investigate.
- /* dtor */ virtual ~IMedium( void ) {}
- };
-
-// Statics:
-public:
- static bool WriteLog( const CMIUtilString & vData );
-
-// Methods:
-public:
- bool RegisterMedium( const IMedium & vrMedium );
- bool UnregisterMedium( const IMedium & vrMedium );
- bool Write( const CMIUtilString & vData, const ELogVerbosity veType );
- bool SetEnabled( const bool vbYes );
- bool GetEnabled( void ) const;
-
- // MI common object handling - duplicate of CMICmnBase functions, necessary for LINUX build
- // Done to stop locking on object construction init circular dependency.
- const CMIUtilString & GetErrorDescription( void ) const;
- void SetErrorDescription( const CMIUtilString & vrTxt ) const;
- void ClrErrorDescription( void ) const;
-
-// Overridden:
-public:
- // From MI::ISingleton
- virtual bool Initialize( void );
- virtual bool Shutdown( void );
-
-// Methods:
-private:
- /* ctor */ CMICmnLog( void );
- /* ctor */ CMICmnLog( const CMICmnLog & );
- void operator=( const CMICmnLog & );
-
-// Overridden:
-private:
- // From CMICmnBase
- /* dtor */ virtual ~CMICmnLog( void );
-
-// Typedef:
-private:
- typedef std::map< IMedium *, CMIUtilString > MapMediumToName_t;
- typedef std::pair< IMedium *, CMIUtilString > MapPairMediumToName_t;
-
-// Methods:
-private:
- bool HaveMediumAlready( const IMedium & vrMedium ) const;
- bool UnregisterMediumAll( void );
-
-// Attributes:
-private:
- bool m_bRecursiveDive; // True = yes recursive, false = no
- MapMediumToName_t m_mapMediumToName;
- bool m_bEnabled; // True = Logger enabled for writing to mediums, false = medium not written to
- bool m_bInitializingATM; // True = Yes in process of initing *this logger, false = not initing
- //
- // MI common object handling - duplicate of CMICmnBase functions, necessary for LINUX build
- bool m_bInitialized; // True = yes successfully initialized, false = no yet or failed
- mutable CMIUtilString m_strMILastErrorDescription;
- MIint m_clientUsageRefCnt; // Count of client using *this object so not shutdown() object to early
+ friend MI::ISingleton<CMICmnLog>;
+
+ // Enumeration:
+ public:
+ //++
+ // Description: Data given to the Logger can be of serveral types. The Logger can be
+ // set at levels of verbosity. Can determine how data is sent to one or
+ // mediums.
+ //--
+ enum ELogVerbosity
+ { // Descriptions of what 'may' occur, depends ultimately on the medium itself. See the medium.
+ eLogVerbosity_FnTrace = 0x00000004, // Debug function stack call tracing
+ eLogVerbosity_DbgOp = 0x00000008, // Send a string to the debugguer for display (not implemented)
+ eLogVerbosity_ClientMsg = 0x00000010, // A client using MI can insert messages into the log (not implemented)
+ eLogVerbosity_Log = 0x00000020 // Send to only the Log file.
+ };
+
+ // Class:
+ public:
+ //++
+ // Description: Register a medium derived from this interface which will be
+ // called writing log trace data i.e. a file or a console.
+ // Medium objects registered are not owned by *this logger.
+ //--
+ class IMedium
+ {
+ public:
+ virtual bool Initialize(void) = 0;
+ virtual const CMIUtilString &GetName(void) const = 0;
+ virtual bool Write(const CMIUtilString &vData, const ELogVerbosity veType) = 0;
+ virtual const CMIUtilString &GetError(void) const = 0;
+ virtual bool Shutdown(void) = 0;
+
+ // Not part of the interface, ignore
+ // AD: This virtual destructor seems to hit a bug in the stdlib
+ // where vector delete is incorrectly called. Workaround is
+ // to comment this out while I investigate.
+ /* dtor */ virtual ~IMedium(void) {}
+ };
+
+ // Statics:
+ public:
+ static bool WriteLog(const CMIUtilString &vData);
+
+ // Methods:
+ public:
+ bool RegisterMedium(const IMedium &vrMedium);
+ bool UnregisterMedium(const IMedium &vrMedium);
+ bool Write(const CMIUtilString &vData, const ELogVerbosity veType);
+ bool SetEnabled(const bool vbYes);
+ bool GetEnabled(void) const;
+
+ // MI common object handling - duplicate of CMICmnBase functions, necessary for LINUX build
+ // Done to stop locking on object construction init circular dependency.
+ const CMIUtilString &GetErrorDescription(void) const;
+ void SetErrorDescription(const CMIUtilString &vrTxt) const;
+ void ClrErrorDescription(void) const;
+
+ // Overridden:
+ public:
+ // From MI::ISingleton
+ virtual bool Initialize(void);
+ virtual bool Shutdown(void);
+
+ // Methods:
+ private:
+ /* ctor */ CMICmnLog(void);
+ /* ctor */ CMICmnLog(const CMICmnLog &);
+ void operator=(const CMICmnLog &);
+
+ // Overridden:
+ private:
+ // From CMICmnBase
+ /* dtor */ virtual ~CMICmnLog(void);
+
+ // Typedef:
+ private:
+ typedef std::map<IMedium *, CMIUtilString> MapMediumToName_t;
+ typedef std::pair<IMedium *, CMIUtilString> MapPairMediumToName_t;
+
+ // Methods:
+ private:
+ bool HaveMediumAlready(const IMedium &vrMedium) const;
+ bool UnregisterMediumAll(void);
+
+ // Attributes:
+ private:
+ bool m_bRecursiveDive; // True = yes recursive, false = no
+ MapMediumToName_t m_mapMediumToName;
+ bool m_bEnabled; // True = Logger enabled for writing to mediums, false = medium not written to
+ bool m_bInitializingATM; // True = Yes in process of initing *this logger, false = not initing
+ //
+ // MI common object handling - duplicate of CMICmnBase functions, necessary for LINUX build
+ bool m_bInitialized; // True = yes successfully initialized, false = no yet or failed
+ mutable CMIUtilString m_strMILastErrorDescription;
+ MIint m_clientUsageRefCnt; // Count of client using *this object so not shutdown() object to early
};