diff options
Diffstat (limited to 'tools/lldb-mi/MICmnMIResultRecord.cpp')
-rw-r--r-- | tools/lldb-mi/MICmnMIResultRecord.cpp | 103 |
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; } |