Bruce Mitchener | 39e8823 | 2015-07-21 13:09:39 +0000 | [diff] [blame^] | 1 | //===-- MICmnMIValueResult.cpp ----------------------------------*- C++ -*-===// |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 10 | // In-house headers: |
| 11 | #include "MICmnMIValueResult.h" |
| 12 | #include "MICmnResources.h" |
| 13 | |
| 14 | // Instantiations: |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 15 | const CMIUtilString CMICmnMIValueResult::ms_constStrEqual("="); |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 16 | |
| 17 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 18 | // Details: CMICmnMIValueResult constructor. |
| 19 | // Type: Method. |
| 20 | // Args: None. |
| 21 | // Return: None. |
| 22 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 23 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 24 | CMICmnMIValueResult::CMICmnMIValueResult(void) |
| 25 | : m_bEmptyConstruction(true) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 26 | { |
| 27 | } |
| 28 | |
| 29 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 30 | // Details: CMICmnMIValueResult constructor. |
| 31 | // Type: Method. |
| 32 | // Args: vrVariable - (R) MI value's name. |
| 33 | // vrValue - (R) The MI value. |
| 34 | // Return: None. |
| 35 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 36 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 37 | CMICmnMIValueResult::CMICmnMIValueResult(const CMIUtilString &vrVariable, const CMICmnMIValue &vrValue) |
| 38 | : m_strPartVariable(vrVariable) |
| 39 | , m_partMIValue(vrValue) |
| 40 | , m_bEmptyConstruction(false) |
| 41 | , m_bUseSpacing(false) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 42 | { |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 43 | BuildResult(); |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 44 | } |
| 45 | |
| 46 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 47 | // Details: CMICmnMIValueResult constructor. |
| 48 | // Type: Method. |
| 49 | // Args: vrVariable - (R) MI value's name. |
| 50 | // vrValue - (R) The MI value. |
Bruce Mitchener | cb30079 | 2015-07-03 03:54:17 +0000 | [diff] [blame] | 51 | // vbUseSpacing - (R) True = put space separators into the string, false = no spaces used. |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 52 | // Return: None. |
| 53 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 54 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 55 | CMICmnMIValueResult::CMICmnMIValueResult(const CMIUtilString &vrVariable, const CMICmnMIValue &vrValue, const bool vbUseSpacing) |
| 56 | : m_strPartVariable(vrVariable) |
| 57 | , m_partMIValue(vrValue) |
| 58 | , m_bEmptyConstruction(false) |
| 59 | , m_bUseSpacing(vbUseSpacing) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 60 | { |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 61 | BuildResult(); |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 62 | } |
| 63 | |
| 64 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 65 | // Details: CMICmnMIValueResult destructor. |
| 66 | // Type: Overrideable. |
| 67 | // Args: None. |
| 68 | // Return: None. |
| 69 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 70 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 71 | CMICmnMIValueResult::~CMICmnMIValueResult(void) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 72 | { |
| 73 | } |
| 74 | |
| 75 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 76 | // Details: Build the MI value result string. |
| 77 | // Type: Method. |
| 78 | // Args: None. |
| 79 | // Return: MIstatus::success - Functional succeeded. |
| 80 | // MIstatus::failure - Functional failed. |
| 81 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 82 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 83 | bool |
| 84 | CMICmnMIValueResult::BuildResult(void) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 85 | { |
Bruce Mitchener | 3b25b47 | 2015-07-03 13:45:34 +0000 | [diff] [blame] | 86 | const char *pFormat = m_bUseSpacing ? "%s %s %s" : "%s%s%s"; |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 87 | m_strValue = CMIUtilString::Format(pFormat, m_strPartVariable.c_str(), ms_constStrEqual.c_str(), m_partMIValue.GetString().c_str()); |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 88 | |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 89 | return MIstatus::success; |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 90 | } |
| 91 | |
| 92 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 93 | // Details: Build the MI value result string. |
| 94 | // Type: Method. |
| 95 | // Args: vrVariable - (R) MI value's name. |
| 96 | // vrValue - (R) The MI value. |
| 97 | // Return: MIstatus::success - Functional succeeded. |
| 98 | // MIstatus::failure - Functional failed. |
| 99 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 100 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 101 | bool |
| 102 | CMICmnMIValueResult::BuildResult(const CMIUtilString &vVariable, const CMICmnMIValue &vValue) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 103 | { |
Bruce Mitchener | 3b25b47 | 2015-07-03 13:45:34 +0000 | [diff] [blame] | 104 | const char *pFormat = m_bUseSpacing ? "%s, %s %s %s" : "%s,%s%s%s"; |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 105 | m_strValue = |
| 106 | CMIUtilString::Format(pFormat, m_strValue.c_str(), vVariable.c_str(), ms_constStrEqual.c_str(), vValue.GetString().c_str()); |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 107 | |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 108 | return MIstatus::success; |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 109 | } |
| 110 | |
| 111 | //++ ------------------------------------------------------------------------------------ |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 112 | // Details: Append another MI value object to *this MI value result. |
| 113 | // Type: Method. |
| 114 | // Args: vrVariable - (R) MI value's name. |
| 115 | // vrValue - (R) The MI value. |
| 116 | // Return: MIstatus::success - Functional succeeded. |
| 117 | // MIstatus::failure - Functional failed. |
| 118 | // Throws: None. |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 119 | //-- |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 120 | bool |
| 121 | CMICmnMIValueResult::Add(const CMIUtilString &vrVariable, const CMICmnMIValue &vrValue) |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 122 | { |
Zachary Turner | 1d6af02 | 2014-11-17 18:06:21 +0000 | [diff] [blame] | 123 | if (!m_bEmptyConstruction) |
| 124 | return BuildResult(vrVariable, vrValue); |
| 125 | else |
| 126 | { |
| 127 | m_bEmptyConstruction = false; |
| 128 | m_strPartVariable = vrVariable; |
| 129 | m_partMIValue = vrValue; |
| 130 | return BuildResult(); |
| 131 | } |
Deepak Panickal | 6f9c468 | 2014-05-16 10:51:01 +0000 | [diff] [blame] | 132 | } |