aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmnMIResultRecord.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnMIResultRecord.cpp')
-rw-r--r--tools/lldb-mi/MICmnMIResultRecord.cpp103
1 files changed, 54 insertions, 49 deletions
diff --git a/tools/lldb-mi/MICmnMIResultRecord.cpp b/tools/lldb-mi/MICmnMIResultRecord.cpp
index 49a31c87519f..0348f8941316 100644
--- a/tools/lldb-mi/MICmnMIResultRecord.cpp
+++ b/tools/lldb-mi/MICmnMIResultRecord.cpp
@@ -1,4 +1,4 @@
-//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
+//===-- MICmnMIResultRecord.cpp ---------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,18 +7,53 @@
//
//===----------------------------------------------------------------------===//
+// Third Party Headers:
+#include <assert.h>
+
// In-house headers:
#include "MICmnMIResultRecord.h"
#include "MICmnResources.h"
-// Instantiations:
-CMICmnMIResultRecord::MapResultClassToResultClassText_t ms_MapResultClassToResultClassText = {
- {CMICmnMIResultRecord::eResultClass_Done, "done"},
- {CMICmnMIResultRecord::eResultClass_Running, "running"},
- {CMICmnMIResultRecord::eResultClass_Connected, "connected"},
- {CMICmnMIResultRecord::eResultClass_Error, "error"},
- {CMICmnMIResultRecord::eResultClass_Exit, "exit"}};
-const CMIUtilString CMICmnMIResultRecord::ms_constStrResultRecordHat("^");
+//++ ------------------------------------------------------------------------------------
+// Details: Map a result class to the corresponding string.
+// Args: veType - (R) A MI result class enumeration.
+// Return: const char* - The string corresponding to the result class.
+// Throws: None.
+//--
+static const char*
+MapResultClassToResultClassText(CMICmnMIResultRecord::ResultClass_e veType)
+{
+ switch (veType)
+ {
+ case CMICmnMIResultRecord::eResultClass_Done:
+ return "done";
+ case CMICmnMIResultRecord::eResultClass_Running:
+ return "running";
+ case CMICmnMIResultRecord::eResultClass_Connected:
+ return "connected";
+ case CMICmnMIResultRecord::eResultClass_Error:
+ return "error";
+ case CMICmnMIResultRecord::eResultClass_Exit:
+ return "exit";
+ }
+ assert(false && "unknown CMICmnMIResultRecord::ResultClass_e");
+ return NULL;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Build the result record's mandatory data part. The part up to the first
+// (additional) result i.e. result-record ==> [ token ] "^" result-class.
+// Args: vrToken - (R) The command's transaction ID or token.
+// veType - (R) A MI result class enumeration.
+// Return: CMIUtilString & - MI result record mandatory data
+// Throws: None.
+//--
+static const CMIUtilString
+BuildResultRecord(const CMIUtilString &vrToken, CMICmnMIResultRecord::ResultClass_e veType)
+{
+ const char *pStrResultRecord = MapResultClassToResultClassText(veType);
+ return CMIUtilString::Format("%s^%s", vrToken.c_str(), pStrResultRecord);
+}
//++ ------------------------------------------------------------------------------------
// Details: CMICmnMIResultRecord constructor.
@@ -27,7 +62,7 @@ const CMIUtilString CMICmnMIResultRecord::ms_constStrResultRecordHat("^");
// Return: None.
// Throws: None.
//--
-CMICmnMIResultRecord::CMICmnMIResultRecord(void)
+CMICmnMIResultRecord::CMICmnMIResultRecord()
: m_strResultRecord(MIRSRC(IDS_CMD_ERR_CMD_RUN_BUT_NO_ACTION))
{
}
@@ -40,12 +75,9 @@ CMICmnMIResultRecord::CMICmnMIResultRecord(void)
// Return: None.
// Throws: None.
//--
-CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, const ResultClass_e veType)
- : m_strResultRecordToken(vrToken)
- , m_eResultRecordResultClass(veType)
- , m_strResultRecord(MIRSRC(IDS_CMD_ERR_CMD_RUN_BUT_NO_ACTION))
+CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, ResultClass_e veType)
+ : m_strResultRecord(BuildResultRecord(vrToken, veType))
{
- BuildResultRecord();
}
//++ ------------------------------------------------------------------------------------
@@ -57,14 +89,10 @@ CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, const R
// Return: None.
// Throws: None.
//--
-CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, const ResultClass_e veType, const CMICmnMIValueResult &vValue)
- : m_strResultRecordToken(vrToken)
- , m_eResultRecordResultClass(veType)
- , m_strResultRecord(MIRSRC(IDS_CMD_ERR_CMD_RUN_BUT_NO_ACTION))
- , m_partResult(vValue)
+CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, ResultClass_e veType, const CMICmnMIValueResult &vValue)
+ : m_strResultRecord(BuildResultRecord(vrToken, veType))
{
- BuildResultRecord();
- Add(m_partResult);
+ Add(vValue);
}
//++ ------------------------------------------------------------------------------------
@@ -74,7 +102,7 @@ CMICmnMIResultRecord::CMICmnMIResultRecord(const CMIUtilString &vrToken, const R
// Return: None.
// Throws: None.
//--
-CMICmnMIResultRecord::~CMICmnMIResultRecord(void)
+CMICmnMIResultRecord::~CMICmnMIResultRecord()
{
}
@@ -89,44 +117,21 @@ CMICmnMIResultRecord::~CMICmnMIResultRecord(void)
// Throws: None.
//--
const CMIUtilString &
-CMICmnMIResultRecord::GetString(void) const
+CMICmnMIResultRecord::GetString() const
{
return m_strResultRecord;
}
//++ ------------------------------------------------------------------------------------
-// Details: Build the result record's mandatory data part. The part up to the first
-// (additional) result i.e. result-record ==> [ token ] "^" result-class.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
-// Throws: None.
-//--
-bool
-CMICmnMIResultRecord::BuildResultRecord(void)
-{
- const char *pFormat = "%s%s%s";
- const CMIUtilString &rStrResultRecord(ms_MapResultClassToResultClassText[m_eResultRecordResultClass]);
- m_strResultRecord =
- CMIUtilString::Format(pFormat, m_strResultRecordToken.c_str(), ms_constStrResultRecordHat.c_str(), rStrResultRecord.c_str());
-
- return MIstatus::success;
-}
-
-//++ ------------------------------------------------------------------------------------
// Details: Add to *this result record additional information.
// Type: Method.
// Args: vMIValue - (R) A MI value derived object.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed.
+// Return: None.
// Throws: None.
//--
-bool
+void
CMICmnMIResultRecord::Add(const CMICmnMIValue &vMIValue)
{
m_strResultRecord += ",";
m_strResultRecord += vMIValue.GetString();
-
- return MIstatus::success;
}