summaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmnLog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnLog.cpp')
-rw-r--r--tools/lldb-mi/MICmnLog.cpp525
1 files changed, 270 insertions, 255 deletions
diff --git a/tools/lldb-mi/MICmnLog.cpp b/tools/lldb-mi/MICmnLog.cpp
index 4ccbd3ef992c..a18fd2d4e502 100644
--- a/tools/lldb-mi/MICmnLog.cpp
+++ b/tools/lldb-mi/MICmnLog.cpp
@@ -8,15 +8,15 @@
//===----------------------------------------------------------------------===//
//++
-// File: MICmnLog.cpp
+// File: MICmnLog.cpp
//
-// Overview: CMICmnLog implementation.
+// Overview: CMICmnLog implementation.
//
-// 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.
//--
// In-house headers:
@@ -27,329 +27,344 @@
#include "MIUtilDateTimeStd.h"
//++ ------------------------------------------------------------------------------------
-// Details: CMICmnLog constructor.
-// Type: Method.
-// Args: None.
-// Return: None.
-// Throws: None.
+// Details: CMICmnLog constructor.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
//--
-CMICmnLog::CMICmnLog( void )
-: m_bEnabled( false )
-, m_bInitializingATM( false )
+CMICmnLog::CMICmnLog(void)
+ : m_bEnabled(false)
+ , m_bInitializingATM(false)
{
- // Do not use this constructor, use Initialize()
+ // Do not use this constructor, use Initialize()
}
//++ ------------------------------------------------------------------------------------
-// Details: CMICmnLog destructor.
-// Type: Method.
-// Args: None.
-// Return: None.
-// Throws: None.
+// Details: CMICmnLog destructor.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
//--
-CMICmnLog::~CMICmnLog( void )
+CMICmnLog::~CMICmnLog(void)
{
- Shutdown();
+ Shutdown();
}
//++ ------------------------------------------------------------------------------------
-// Details: Initialize resources for *this Logger.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Initialize resources for *this Logger.
+// Type: Method.
+// Args: None.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::Initialize( void )
+bool
+CMICmnLog::Initialize(void)
{
- m_clientUsageRefCnt++;
-
- if( m_bInitialized )
- return MIstatus::success;
-
- ClrErrorDescription();
-
- // Mediums set inside because explicitly initing in MIDriverMain.cpp causes compile errors with CAtlFile
- CMICmnLogMediumFile & rFileLog( CMICmnLogMediumFile::Instance() );
- bool bOk = RegisterMedium( rFileLog );
- bOk = bOk && SetEnabled( true );
- if( bOk )
- {
- // Set the Log trace file's header
- const CMIUtilString & rCR( rFileLog.GetLineReturn() );
- CMIUtilDateTimeStd date;
- CMIUtilString msg;
- msg = CMIUtilString::Format( "%s\n", CMIDriverMgr::Instance().GetAppVersion().c_str() );
- CMIUtilString logHdr( msg );
- msg = CMIUtilString::Format( MIRSRC( IDS_LOG_MSG_CREATION_DATE ), date.GetDate().c_str(), date.GetTime().c_str(), rCR.c_str() );
- logHdr += msg;
- msg = CMIUtilString::Format( MIRSRC( IDS_LOG_MSG_FILE_LOGGER_PATH ), rFileLog.GetFileNamePath().c_str(), rCR.c_str() );
- logHdr += msg;
-
- bOk = rFileLog.SetHeaderTxt( logHdr );
-
- // Note log file medium's status is not available until we write at least once to the file (so just write the title 1st line)
- m_bInitializingATM = true;
- CMICmnLog::WriteLog( "." );
- if( !rFileLog.IsOk() )
- {
- const CMIUtilString msg( CMIUtilString::Format( MIRSRC( IDS_LOG_ERR_FILE_LOGGER_DISABLED ), rFileLog.GetErrorDescription().c_str() ) );
- CMICmnLog::WriteLog( msg );
- }
- m_bInitializingATM = false;
- }
-
- m_bInitialized = bOk;
-
- return bOk;
+ m_clientUsageRefCnt++;
+
+ if (m_bInitialized)
+ return MIstatus::success;
+
+ ClrErrorDescription();
+
+ // Mediums set inside because explicitly initing in MIDriverMain.cpp causes compile errors with CAtlFile
+ CMICmnLogMediumFile &rFileLog(CMICmnLogMediumFile::Instance());
+ bool bOk = RegisterMedium(rFileLog);
+ bOk = bOk && SetEnabled(true);
+ if (bOk)
+ {
+ // Set the Log trace file's header
+ const CMIUtilString &rCR(rFileLog.GetLineReturn());
+ CMIUtilDateTimeStd date;
+ CMIUtilString msg;
+ msg = CMIUtilString::Format("%s\n", CMIDriverMgr::Instance().GetAppVersion().c_str());
+ CMIUtilString logHdr(msg);
+ msg = CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_CREATION_DATE), date.GetDate().c_str(), date.GetTime().c_str(), rCR.c_str());
+ logHdr += msg;
+ msg = CMIUtilString::Format(MIRSRC(IDS_LOG_MSG_FILE_LOGGER_PATH), rFileLog.GetFileNamePath().c_str(), rCR.c_str());
+ logHdr += msg;
+
+ bOk = rFileLog.SetHeaderTxt(logHdr);
+
+ // Note log file medium's status is not available until we write at least once to the file (so just write the title 1st line)
+ m_bInitializingATM = true;
+ CMICmnLog::WriteLog(".");
+ if (!rFileLog.IsOk())
+ {
+ const CMIUtilString msg(
+ CMIUtilString::Format(MIRSRC(IDS_LOG_ERR_FILE_LOGGER_DISABLED), rFileLog.GetErrorDescription().c_str()));
+ CMICmnLog::WriteLog(msg);
+ }
+ m_bInitializingATM = false;
+ }
+
+ m_bInitialized = bOk;
+
+ return bOk;
}
//++ ------------------------------------------------------------------------------------
-// Details: Release resources for *this Logger.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Release resources for *this Logger.
+// Type: Method.
+// Args: None.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::Shutdown( void )
+bool
+CMICmnLog::Shutdown(void)
{
- if( --m_clientUsageRefCnt > 0 )
- return MIstatus::success;
-
- if( !m_bInitialized )
- return MIstatus::success;
+ if (--m_clientUsageRefCnt > 0)
+ return MIstatus::success;
- ClrErrorDescription();
+ if (!m_bInitialized)
+ return MIstatus::success;
- const bool bOk = UnregisterMediumAll();
-
- m_bInitialized = bOk;
-
- return bOk;
-}
+ ClrErrorDescription();
+
+ const bool bOk = UnregisterMediumAll();
+
+ m_bInitialized = bOk;
+
+ return bOk;
+}
//++ ------------------------------------------------------------------------------------
-// Details: Enabled or disable *this Logger from writing any data to registered clients.
-// Type: Method.
-// Args: vbYes - (R) True = Logger enabled, false = disabled.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Enabled or disable *this Logger from writing any data to registered clients.
+// Type: Method.
+// Args: vbYes - (R) True = Logger enabled, false = disabled.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::SetEnabled( const bool vbYes )
+bool
+CMICmnLog::SetEnabled(const bool vbYes)
{
- m_bEnabled = vbYes;
+ m_bEnabled = vbYes;
- return MIstatus::success;
+ return MIstatus::success;
}
//++ ------------------------------------------------------------------------------------
-// Details: Retrieve state whether *this Logger is enabled writing data to registered clients.
-// Type: Method.
-// Args: None.
-// Return: True = Logger enable.
-// False = disabled.
-// Throws: None.
+// Details: Retrieve state whether *this Logger is enabled writing data to registered clients.
+// Type: Method.
+// Args: None.
+// Return: True = Logger enable.
+// False = disabled.
+// Throws: None.
//--
-bool CMICmnLog::GetEnabled( void ) const
+bool
+CMICmnLog::GetEnabled(void) const
{
- return m_bEnabled;
+ return m_bEnabled;
}
//++ ------------------------------------------------------------------------------------
-// Details: Unregister all the Mediums registered with *this Logger.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Unregister all the Mediums registered with *this Logger.
+// Type: Method.
+// Args: None.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::UnregisterMediumAll( void )
+bool
+CMICmnLog::UnregisterMediumAll(void)
{
- MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
- for( ; it != m_mapMediumToName.end( ); it++ )
- {
- IMedium * pMedium = (*it).first;
- pMedium->Shutdown();
- }
-
- m_mapMediumToName.clear();
-
- return MIstatus::success;
+ MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
+ for (; it != m_mapMediumToName.end(); it++)
+ {
+ IMedium *pMedium = (*it).first;
+ pMedium->Shutdown();
+ }
+
+ m_mapMediumToName.clear();
+
+ return MIstatus::success;
}
//++ ------------------------------------------------------------------------------------
-// Details: Register a Medium with *this Logger.
-// Type: Method.
-// Args: vrMedium - (R) The medium to register.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Register a Medium with *this Logger.
+// Type: Method.
+// Args: vrMedium - (R) The medium to register.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::RegisterMedium( const IMedium & vrMedium )
+bool
+CMICmnLog::RegisterMedium(const IMedium &vrMedium)
{
- if( HaveMediumAlready( vrMedium ) )
- return MIstatus::success;
-
- IMedium * pMedium = const_cast< IMedium * >( &vrMedium );
- if( !pMedium->Initialize() )
- {
- const CMIUtilString & rStrMedName( pMedium->GetName() );
- const CMIUtilString & rStrMedErr( pMedium->GetError() );
- SetErrorDescription( CMIUtilString::Format( MIRSRC( IDS_LOG_MEDIUM_ERR_INIT ), rStrMedName.c_str(), rStrMedErr.c_str() ) );
- return MIstatus::failure;
- }
-
- MapPairMediumToName_t pr( pMedium, pMedium->GetName() );
- m_mapMediumToName.insert( pr );
-
- return MIstatus::success;
+ if (HaveMediumAlready(vrMedium))
+ return MIstatus::success;
+
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ if (!pMedium->Initialize())
+ {
+ const CMIUtilString &rStrMedName(pMedium->GetName());
+ const CMIUtilString &rStrMedErr(pMedium->GetError());
+ SetErrorDescription(CMIUtilString::Format(MIRSRC(IDS_LOG_MEDIUM_ERR_INIT), rStrMedName.c_str(), rStrMedErr.c_str()));
+ return MIstatus::failure;
+ }
+
+ MapPairMediumToName_t pr(pMedium, pMedium->GetName());
+ m_mapMediumToName.insert(pr);
+
+ return MIstatus::success;
}
//++ ------------------------------------------------------------------------------------
-// Details: Query the Logger to see if a medium is already registered.
-// Type: Method.
-// Args: vrMedium - (R) The medium to query.
-// Return: True - registered.
-// False - not registered.
-// Throws: None.
+// Details: Query the Logger to see if a medium is already registered.
+// Type: Method.
+// Args: vrMedium - (R) The medium to query.
+// Return: True - registered.
+// False - not registered.
+// Throws: None.
//--
-bool CMICmnLog::HaveMediumAlready( const IMedium & vrMedium ) const
+bool
+CMICmnLog::HaveMediumAlready(const IMedium &vrMedium) const
{
- IMedium * pMedium = const_cast< IMedium * >( &vrMedium );
- const MapMediumToName_t::const_iterator it = m_mapMediumToName.find( pMedium );
- if( it != m_mapMediumToName.end() )
- return true;
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ const MapMediumToName_t::const_iterator it = m_mapMediumToName.find(pMedium);
+ if (it != m_mapMediumToName.end())
+ return true;
- return false;
+ return false;
}
//++ ------------------------------------------------------------------------------------
-// Details: Unregister a medium from the Logger.
-// Type: Method.
-// Args: vrMedium - (R) The medium to unregister.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Unregister a medium from the Logger.
+// Type: Method.
+// Args: vrMedium - (R) The medium to unregister.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::UnregisterMedium( const IMedium & vrMedium )
+bool
+CMICmnLog::UnregisterMedium(const IMedium &vrMedium)
{
- IMedium * pMedium = const_cast< IMedium * >( &vrMedium );
- m_mapMediumToName.erase( pMedium );
+ IMedium *pMedium = const_cast<IMedium *>(&vrMedium);
+ m_mapMediumToName.erase(pMedium);
- return MIstatus::success;
+ return MIstatus::success;
}
//++ ------------------------------------------------------------------------------------
-// Details: The callee client uses this function to write to the Logger. The data to be
-// written is given out to all the mediums registered. The verbosity type parameter
-// indicates to the medium(s) the type of data or message given to it. The medium has
-// modes of verbosity and depending on the verbosity set determines which writes
-// go in to the logger.
-// The logger must be initialized successfully before a write to any registered
-// can be carried out.
-// Type: Method.
-// Args: vData - (R) The data to write to the logger.
-// veType - (R) Verbosity type.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: The callee client uses this function to write to the Logger. The data to be
+// written is given out to all the mediums registered. The verbosity type parameter
+// indicates to the medium(s) the type of data or message given to it. The medium has
+// modes of verbosity and depending on the verbosity set determines which writes
+// go in to the logger.
+// The logger must be initialized successfully before a write to any registered
+// can be carried out.
+// Type: Method.
+// Args: vData - (R) The data to write to the logger.
+// veType - (R) Verbosity type.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::Write( const CMIUtilString & vData, const ELogVerbosity veType )
+bool
+CMICmnLog::Write(const CMIUtilString &vData, const ELogVerbosity veType)
{
- if( !m_bInitialized && !m_bInitializingATM )
- return MIstatus::success;
- if( m_bRecursiveDive )
- return MIstatus::success;
- if( !m_bEnabled )
- return MIstatus::success;
-
- m_bRecursiveDive = true;
-
- MIuint cnt = 0;
- MIuint cntErr = 0;
- {
- MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
- while( it != m_mapMediumToName.end() )
- {
- IMedium * pMedium = (*it).first;
- const CMIUtilString & rNameMedium = (*it).second; MIunused( rNameMedium );
- if( pMedium->Write( vData, veType ) )
- cnt++;
- else
- cntErr++;
-
- // Next
- ++it;
- }
- }
-
- bool bOk = MIstatus::success;
- const MIuint mediumCnt = m_mapMediumToName.size();
- if( (cnt == 0) && (mediumCnt > 0) )
- {
- SetErrorDescription( MIRSRC( IDS_LOG_MEDIUM_ERR_WRITE_ANY ) );
- bOk = MIstatus::failure;
- }
- if( bOk && (cntErr != 0) )
- {
- SetErrorDescription( MIRSRC( IDS_LOG_MEDIUM_ERR_WRITE_MEDIUMFAIL ) );
- bOk = MIstatus::failure;
- }
-
- m_bRecursiveDive = false;
-
- return bOk;
+ if (!m_bInitialized && !m_bInitializingATM)
+ return MIstatus::success;
+ if (m_bRecursiveDive)
+ return MIstatus::success;
+ if (!m_bEnabled)
+ return MIstatus::success;
+
+ m_bRecursiveDive = true;
+
+ MIuint cnt = 0;
+ MIuint cntErr = 0;
+ {
+ MapMediumToName_t::const_iterator it = m_mapMediumToName.begin();
+ while (it != m_mapMediumToName.end())
+ {
+ IMedium *pMedium = (*it).first;
+ const CMIUtilString &rNameMedium = (*it).second;
+ MIunused(rNameMedium);
+ if (pMedium->Write(vData, veType))
+ cnt++;
+ else
+ cntErr++;
+
+ // Next
+ ++it;
+ }
+ }
+
+ bool bOk = MIstatus::success;
+ const MIuint mediumCnt = m_mapMediumToName.size();
+ if ((cnt == 0) && (mediumCnt > 0))
+ {
+ SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_ANY));
+ bOk = MIstatus::failure;
+ }
+ if (bOk && (cntErr != 0))
+ {
+ SetErrorDescription(MIRSRC(IDS_LOG_MEDIUM_ERR_WRITE_MEDIUMFAIL));
+ bOk = MIstatus::failure;
+ }
+
+ m_bRecursiveDive = false;
+
+ return bOk;
}
//++ ------------------------------------------------------------------------------------
-// Details: Short cut function call to write only to the Log file.
-// The logger must be initialized successfully before a write to any registered
-// can be carried out.
-// Type: Static.
-// Args: vData - (R) The data to write to the logger.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
+// Details: Short cut function call to write only to the Log file.
+// The logger must be initialized successfully before a write to any registered
+// can be carried out.
+// Type: Static.
+// Args: vData - (R) The data to write to the logger.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
//--
-bool CMICmnLog::WriteLog( const CMIUtilString & vData )
+bool
+CMICmnLog::WriteLog(const CMIUtilString &vData)
{
- return CMICmnLog::Instance().Write( vData, CMICmnLog::eLogVerbosity_Log );
+ return CMICmnLog::Instance().Write(vData, CMICmnLog::eLogVerbosity_Log);
}
//++ ------------------------------------------------------------------------------------
-// Details: Retrieve a string detailing the last error.
-// Type: Method.
-// Args: None,
-// Return: CMIUtilString.
-// Throws: None.
+// Details: Retrieve a string detailing the last error.
+// Type: Method.
+// Args: None,
+// Return: CMIUtilString.
+// Throws: None.
//--
-const CMIUtilString & CMICmnLog::GetErrorDescription( void ) const
+const CMIUtilString &
+CMICmnLog::GetErrorDescription(void) const
{
- return m_strMILastErrorDescription;
+ return m_strMILastErrorDescription;
}
//++ ------------------------------------------------------------------------------------
-// Details: Set the internal description of the last error.
-// Type: Method.
-// Args: (R) String containing a description of the last error.
-// Return: None.
-// Throws: None.
+// Details: Set the internal description of the last error.
+// Type: Method.
+// Args: (R) String containing a description of the last error.
+// Return: None.
+// Throws: None.
//--
-void CMICmnLog::SetErrorDescription( const CMIUtilString & vrTxt ) const
+void
+CMICmnLog::SetErrorDescription(const CMIUtilString &vrTxt) const
{
- m_strMILastErrorDescription = vrTxt;
+ m_strMILastErrorDescription = vrTxt;
}
//++ ------------------------------------------------------------------------------------
-// Details: Clear the last error.
-// Type: None.
-// Args: None.
-// Return: None.
-// Throws: None.
+// Details: Clear the last error.
+// Type: None.
+// Args: None.
+// Return: None.
+// Throws: None.
//--
-void CMICmnLog::ClrErrorDescription( void ) const
+void
+CMICmnLog::ClrErrorDescription(void) const
{
- m_strMILastErrorDescription = CMIUtilString( "" );
+ m_strMILastErrorDescription = CMIUtilString("");
}