diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-10-23 17:53:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-10-23 17:53:01 +0000 |
commit | ead246455adf1a215ec2715dad6533073a6beb4e (patch) | |
tree | f3f97a47d77053bf96fe74cdbd6fae74380e8a92 /tools/lldb-mi/MICmnLog.h | |
parent | fdb00c4408990a0a63ef7f496d809ce59f263bc5 (diff) | |
download | src-ead246455adf1a215ec2715dad6533073a6beb4e.tar.gz src-ead246455adf1a215ec2715dad6533073a6beb4e.zip |
Vendor import of stripped lldb trunk r375505, the last commit before thevendor/lldb/lldb-trunk-r375505vendor/lldb
upstream Subversion repository was made read-only, and the LLVM project
migrated to GitHub:
https://llvm.org/svn/llvm-project/lldb/trunk@375505
Notes
Notes:
svn path=/vendor/lldb/dist/; revision=353952
svn path=/vendor/lldb/lldb-r375505/; revision=353953; tag=vendor/lldb/lldb-trunk-r375505
Diffstat (limited to 'tools/lldb-mi/MICmnLog.h')
-rw-r--r-- | tools/lldb-mi/MICmnLog.h | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/tools/lldb-mi/MICmnLog.h b/tools/lldb-mi/MICmnLog.h deleted file mode 100644 index 909dc613b02e..000000000000 --- a/tools/lldb-mi/MICmnLog.h +++ /dev/null @@ -1,138 +0,0 @@ -//===-- MICmnLog.h ----------------------------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#pragma once - -// Third party headers: -#include <map> - -// In-house headers: -#include "MICmnBase.h" -#include "MIUtilSingletonBase.h" -#include "MIUtilString.h" - -//++ -//============================================================================ -// Details: MI common code implementation class. Handle application trace -// activity logging. Medium objects derived from the Medium abstract -/// class are registered with this logger. 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. -//-- -class CMICmnLog : public MI::ISingleton<CMICmnLog> { - friend MI::ISingleton<CMICmnLog>; - - // Enumeration: -public: - //++ - // Description: Data given to the Logger can be of several 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 debugger 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() = 0; - virtual const CMIUtilString &GetName() const = 0; - virtual bool Write(const CMIUtilString &vData, - const ELogVerbosity veType) = 0; - virtual const CMIUtilString &GetError() const = 0; - virtual bool Shutdown() = 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() {} - }; - - // 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() 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() const; - void SetErrorDescription(const CMIUtilString &vrTxt) const; - void ClrErrorDescription() const; - - // Overridden: -public: - // From MI::ISingleton - bool Initialize() override; - bool Shutdown() override; - - // Methods: -private: - /* ctor */ CMICmnLog(); - /* ctor */ CMICmnLog(const CMICmnLog &); - void operator=(const CMICmnLog &); - - // Overridden: -private: - // From CMICmnBase - /* dtor */ ~CMICmnLog() override; - - // 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(); - - // 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 -}; |