Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2263 kivins 1
//## begin module%1.7%.codegen_version preserve=yes
2
//   Read the documentation to learn more about C++ code generator
3
//   versioning.
4
//## end module%1.7%.codegen_version
5
 
6
//## begin module%41FDA1530338.cm preserve=no
7
//## end module%41FDA1530338.cm
8
 
9
//## begin module%41FDA1530338.cp preserve=no
10
//	C O P Y R I G H T   N O T I C E
11
//	This material is confidential to ERG and may not be disclosed in whole
12
//	or in part to any third party nor used in any manner whatsoever other
13
//	than for the purposes expressly consented to by ERG in writing.
14
//
15
//	This material is also copyright and may not be reproduced, stored in a
16
//	retrieval system or transmitted in any form or by any means in whole or
17
//	in part without the express written consent of ERG.
18
//## end module%41FDA1530338.cp
19
 
20
//## Module: TransactionTemplateCollection%41FDA1530338; Pseudo Package body
21
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
22
//## Source file: Z:\MASS_Dev\Tools\TxnTestManager\src\TransactionTemplateCollection.cpp
23
 
24
//## begin module%41FDA1530338.additionalIncludes preserve=no
25
//## end module%41FDA1530338.additionalIncludes
26
 
27
//## begin module%41FDA1530338.includes preserve=yes
28
#pragma warn -com
29
#include <LoggingMacros.h>
30
#pragma warn +com
31
//## end module%41FDA1530338.includes
32
 
33
// TestScenarioTemplate
34
#include "TestScenarioTemplate.h"
35
// TransactionTemplateCollection
36
#include "TransactionTemplateCollection.h"
37
//## begin module%41FDA1530338.additionalDeclarations preserve=yes
38
//## end module%41FDA1530338.additionalDeclarations
39
 
40
 
41
// Class TransactionTemplateCollection 
42
 
43
TransactionTemplateCollection::TransactionTemplateCollection()
44
  //## begin TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.initialization preserve=yes
45
  //## end TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.initialization
46
{
47
  //## begin TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.body preserve=yes
48
  //## end TransactionTemplateCollection::TransactionTemplateCollection%41FDA1530338_const.body
49
}
50
 
51
 
52
TransactionTemplateCollection::~TransactionTemplateCollection()
53
{
54
  //## begin TransactionTemplateCollection::~TransactionTemplateCollection%41FDA1530338_dest.body preserve=yes
55
 
56
	clear();
57
 
58
  //## end TransactionTemplateCollection::~TransactionTemplateCollection%41FDA1530338_dest.body
59
}
60
 
61
 
62
 
63
//## Other Operations (implementation)
64
//## Operation: clear%41FF37BC037C
65
void TransactionTemplateCollection::clear ()
66
{
67
  //## begin TransactionTemplateCollection::clear%41FF37BC037C.body preserve=yes
68
 
69
	for ( std::map< int, TestScenarioTemplate * >::iterator where = m_scenario.begin();
70
		  where != m_scenario.end();
71
		  ++where )
72
	{
73
		delete where->second;
74
		where->second = 0;
75
	}
76
	m_scenario.clear();
77
 
78
  //## end TransactionTemplateCollection::clear%41FF37BC037C.body
79
}
80
 
81
//## Operation: findTestScenarioTemplate%41FF6B0502AD
82
TestScenarioTemplate* TransactionTemplateCollection::findTestScenarioTemplate (const int &scenario) const
83
{
84
  //## begin TransactionTemplateCollection::findTestScenarioTemplate%41FF6B0502AD.body preserve=yes
85
 
86
	std::map< int, TestScenarioTemplate * >::const_iterator
87
		instance = m_scenario.find( scenario );
88
 
89
	if ( instance != m_scenario.end() )
90
	{
91
		return ( instance->second );
92
	}
93
 
94
	return ( 0 );
95
 
96
  //## end TransactionTemplateCollection::findTestScenarioTemplate%41FF6B0502AD.body
97
}
98
 
99
//## Operation: getTemplateCount%41FF47240341
100
const unsigned TransactionTemplateCollection::getTemplateCount () const
101
{
102
  //## begin TransactionTemplateCollection::getTemplateCount%41FF47240341.body preserve=yes
103
 
104
	unsigned templates = 0;
105
	for ( std::map< int, TestScenarioTemplate * >::const_iterator where = m_scenario.begin();
106
		  where != m_scenario.end();
107
		  ++where )
108
	{
109
		templates += where->second->getTemplateCount();
110
	}
111
 
112
	return ( templates );
113
 
114
  //## end TransactionTemplateCollection::getTemplateCount%41FF47240341.body
115
}
116
 
117
//## Operation: getTestScenario%41FF20EA00B3
118
TestScenarioTemplate& TransactionTemplateCollection::getTestScenario (const int &scenario)
119
{
120
  //## begin TransactionTemplateCollection::getTestScenario%41FF20EA00B3.body preserve=yes
121
 
122
	std::map< int, TestScenarioTemplate * >::const_iterator
123
		instance = m_scenario.find( scenario );
124
 
125
	if ( instance != m_scenario.end() )
126
	{
127
		return ( *instance->second );
128
	}
129
	else
130
	{
131
		TestScenarioTemplate * testScenario = 0;
132
 
133
		try
134
		{
135
			testScenario = new TestScenarioTemplate( scenario );
136
 
137
			if ( m_scenario.insert(
138
					std::map< int, TestScenarioTemplate * >::value_type(
139
						scenario,
140
						testScenario ) ).second )
141
			{
142
				return ( *testScenario );
143
			}
144
			else
145
			{
146
				MTHROW( std::runtime_error, \
147
					"Cannot add scenario \"" \
148
					<< scenario \
149
					<< "\" to collection." );
150
			}
151
		}
152
		catch ( ... )
153
		{
154
			delete testScenario;
155
			testScenario = 0;
156
 
157
			throw;
158
		}
159
	}
160
 
161
  //## end TransactionTemplateCollection::getTestScenario%41FF20EA00B3.body
162
}
163
 
164
//## Operation: haveTemplatesForScenario%41FF3FF8006A
165
const bool TransactionTemplateCollection::haveTemplatesForScenario (const int &scenario) const
166
{
167
  //## begin TransactionTemplateCollection::haveTemplatesForScenario%41FF3FF8006A.body preserve=yes
168
 
169
	std::map< int, TestScenarioTemplate * >::const_iterator
170
		instance = m_scenario.find( scenario );
171
 
172
	if ( instance != m_scenario.end() )
173
	{
174
		if ( instance->second->getTemplateCount() > 0 )
175
		{
176
			return ( true );
177
		}
178
	}
179
 
180
	instance = m_scenario.find( 0 );
181
 
182
	if ( instance != m_scenario.end() )
183
	{
184
		if ( instance->second->getTemplateCount() > 0 )
185
		{
186
			return ( true );
187
		}
188
	}
189
 
190
	return ( false );
191
 
192
  //## end TransactionTemplateCollection::haveTemplatesForScenario%41FF3FF8006A.body
193
}
194
 
195
//## Operation: isTestScenarioContained%41FF6A27039E
196
const bool TransactionTemplateCollection::isTestScenarioContained (const int &scenario)
197
{
198
  //## begin TransactionTemplateCollection::isTestScenarioContained%41FF6A27039E.body preserve=yes
199
 
200
	return ( m_scenario.find( scenario ) != m_scenario.end() );
201
 
202
  //## end TransactionTemplateCollection::isTestScenarioContained%41FF6A27039E.body
203
}
204
 
205
// Additional Declarations
206
  //## begin TransactionTemplateCollection%41FDA1530338.declarations preserve=yes
207
  //## end TransactionTemplateCollection%41FDA1530338.declarations
208
 
209
//## begin module%41FDA1530338.epilog preserve=yes
210
//## end module%41FDA1530338.epilog