1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//++
// File: MICmnMIResultRecord.h
//
// Overview: CMICmnMIResultRecord implementation.
//
// Environment: Compilers: Visual C++ 12.
// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
// Libraries: See MIReadmetxt.
//
// Copyright: None.
//--
// 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: CMICmnMIResultRecord constructor.
// Type: Method.
// Args: None.
// Return: None.
// Throws: None.
//--
CMICmnMIResultRecord::CMICmnMIResultRecord( void )
: m_strResultRecord( MIRSRC( IDS_CMD_ERR_CMD_RUN_BUT_NO_ACTION ) )
{
}
//++ ------------------------------------------------------------------------------------
// Details: CMICmnMIResultRecord constructor.
// Type: Method.
// Args: vrToken - (R) The command's transaction ID or token.
// veType - (R) A MI result class enumeration.
// 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 ) )
{
BuildResultRecord();
}
//++ ------------------------------------------------------------------------------------
// Details: CMICmnMIResultRecord constructor.
// Type: Method.
// Args: vrToken - (R) The command's transaction ID or token.
// veType - (R) A MI result class enumeration.
// vMIResult - (R) A MI result object.
// 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 )
{
BuildResultRecord();
Add( m_partResult );
}
//++ ------------------------------------------------------------------------------------
// Details: CMICmnMIResultRecord destructor.
// Type: Overrideable.
// Args: None.
// Return: None.
// Throws: None.
//--
CMICmnMIResultRecord::~CMICmnMIResultRecord( void )
{
}
//++ ------------------------------------------------------------------------------------
// Details: Return the MI result record as a string. The string is a direct result of
// work done on *this result record so if not enough data is added then it is
// possible to return a malformed result record. If nothing has been set or
// added to *this MI result record object then text "<Invalid>" will be returned.
// Type: Method.
// Args: None.
// Return: CMIUtilString & - MI output text.
// Throws: None.
//--
const CMIUtilString & CMICmnMIResultRecord::GetString( void ) 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 MIchar * 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.
// Throws: None.
//--
bool CMICmnMIResultRecord::Add( const CMICmnMIValue & vMIValue )
{
m_strResultRecord += ",";
m_strResultRecord += vMIValue.GetString();
return MIstatus::success;
}
|