aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmnBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnBase.cpp')
-rw-r--r--tools/lldb-mi/MICmnBase.cpp144
1 files changed, 144 insertions, 0 deletions
diff --git a/tools/lldb-mi/MICmnBase.cpp b/tools/lldb-mi/MICmnBase.cpp
new file mode 100644
index 000000000000..3da7a41b3336
--- /dev/null
+++ b/tools/lldb-mi/MICmnBase.cpp
@@ -0,0 +1,144 @@
+//===-- MICmnBase.cpp -------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+//++
+// File: MICmnBase.cpp
+//
+// Overview: CMICmnBase implementation.
+//
+// Environment: Compilers: Visual C++ 12.
+// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
+// Libraries: See MIReadmetxt.
+//
+// Copyright: None.
+//--
+
+// Third party headers
+#include <stdarg.h> // va_list, va_start, var_end
+
+// In-house headers:
+#include "MICmnBase.h"
+#include "MICmnLog.h"
+#include "MICmnStreamStderr.h"
+
+//++ ------------------------------------------------------------------------------------
+// Details: CMICmnBase constructor.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+CMICmnBase::CMICmnBase( void )
+: m_strMILastErrorDescription( CMIUtilString() )
+, m_bInitialized( false )
+, m_pLog( &CMICmnLog::Instance() )
+, m_clientUsageRefCnt( 0 )
+{
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: CMICmnBase destructor.
+// Type: Overrideable.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+CMICmnBase::~CMICmnBase( void )
+{
+ m_pLog = NULL;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Retrieve whether *this object has an error description set.
+// Type: Method.
+// Args: None.
+// Return: bool - True = Yes already defined, false = empty discription.
+// Throws: None.
+//--
+bool CMICmnBase::HaveErrorDescription( void ) const
+{
+ return m_strMILastErrorDescription.empty();
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Retrieve MI's last error condition.
+// Type: Method.
+// Args: None.
+// Return: CMIUtilString & - Text description.
+// Throws: None.
+//--
+const CMIUtilString & CMICmnBase::GetErrorDescription( void ) const
+{
+ return m_strMILastErrorDescription;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Set MI's error condition description. This may be accessed by clients and
+// seen by users. Message is available to the client using the server and sent
+// to the Logger.
+// Type: Method.
+// Args: vrTxt - (R) Text description.
+// Return: None.
+// Throws: None.
+//--
+void CMICmnBase::SetErrorDescription( const CMIUtilString & vrTxt ) const
+{
+ m_strMILastErrorDescription = vrTxt;
+ if( !vrTxt.empty() )
+ {
+ const CMIUtilString txt( CMIUtilString::Format( "Error: %s", vrTxt.c_str() ) );
+ CMICmnStreamStderr::Instance().Write( txt );
+ }
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Set MI's error condition description. This may be accessed by clients and
+// seen by users. Message is available to the client using the server and sent
+// to the Logger.
+// Type: Method.
+// Args: vrTxt - (R) Text description.
+// Return: None.
+// Throws: None.
+//--
+void CMICmnBase::SetErrorDescriptionNoLog( const CMIUtilString & vrTxt ) const
+{
+ m_strMILastErrorDescription = vrTxt;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Clear MI's error condition description.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+void CMICmnBase::ClrErrorDescription( void ) const
+{
+ m_strMILastErrorDescription.clear();
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Set MI's error condition description. This may be accessed by clients and
+// seen by users. Message is available to the client using the server and sent
+// to the Logger.
+// Type: Method.
+// Args: vrFormat - (R) Format string.
+// ... - (R) Variable number of CMIUtilString type objects.
+// Return: None.
+// Throws: None.
+//--
+void CMICmnBase::SetErrorDescriptionn( const CMIUtilString & vrFormat, ... ) const
+{
+ va_list args;
+ va_start( args, vrFormat );
+ CMIUtilString strResult = CMIUtilString::FormatValist( vrFormat, args );
+ va_end( args );
+
+ SetErrorDescription( strResult );
+} \ No newline at end of file