File: MICmnMIResultRecord.cpp

package info (click to toggle)
llvm-toolchain-3.5 1%3A3.5-10
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 282,028 kB
  • ctags: 310,872
  • sloc: cpp: 1,883,926; ansic: 310,731; objc: 86,612; python: 79,565; asm: 65,844; sh: 9,829; makefile: 6,057; perl: 5,589; ml: 5,254; pascal: 3,285; lisp: 1,640; xml: 686; cs: 239; csh: 117
file content (142 lines) | stat: -rw-r--r-- 4,945 bytes parent folder | download | duplicates (2)
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;
}