Its a brand new baby performance consultant!
[dyninst.git] / paradyn / src / templatesDMPCV.C
1 //
2 // templates for DMthread, VISIthread, VMthread, and PCthread excluding
3 // igen templates
4 //
5
6 #pragma implementation "list.h"
7 #include "util/h/list.h"
8 #include "util/h/String.h"
9 #pragma implementation "Vector.h"
10 #include "util/h/Vector.h"
11 #pragma implementation "Queue.h"
12 #include "util/h/Queue.h"
13 #pragma implementation "BufferPool.h"
14 #include "paradyn/src/DMthread/BufferPool.h"
15 #pragma implementation "Dictionary.h"
16 #include "util/h/Dictionary.h"
17 #pragma implementation "DictionaryLite.h"
18 #include "util/src/DictionaryLite.C"
19 #pragma implementation "dyninstRPC.xdr.h"
20 #include "dyninstRPC.xdr.h"
21 #pragma implementation "visi.xdr.h"
22 #include "visi.xdr.h"
23
24 /*
25  * Handy ready-to-use templates for the templates
26
27
28   ****** dictionary_hash (no iter) *********
29 template class pair<>;
30 template class dictionary<>;
31 template class vector< pair<> >;
32 template class vector< dictionary_hash<>::hash_pair>;
33 template class vector< vector< dictionary_hash<>::hash_pair> >;
34 template class dictionary_hash<>;
35
36   ****** dictionary_hash (iter) ************
37 template class dictionary<>;
38 template class pair<>;
39 template class vector< pair<> >; 
40 template class dictionary_hash<>;
41 template class dictionary_hash_iter<>;
42 template class vector< dictionary_hash<> :: hash_pair >;
43 template class vector< vector< dictionary_hash<> :: hash_pair > >;
44
45   ******* priority queue ********************
46 template class PriorityQueue<>; 
47 template ostream &operator<<(ostream &, PriorityQueue<> &);
48 template class vector<PriorityQueue<>::pair>;
49
50 */
51
52 /* *********************************   
53  * DMthread stuff
54  */
55
56 #include "dataManager.thread.h"
57 #include "dyninstRPC.xdr.CLNT.h"
58 class cpContext;
59 #include "paradyn/src/DMthread/DMdaemon.h"
60 #include "paradyn/src/DMthread/DMmetric.h"
61 #include "paradyn/src/DMthread/DMresource.h"
62 #include "paradyn/src/DMthread/DMperfstream.h"
63 #include "paradyn/src/DMthread/DMinclude.h"
64 #include "paradyn/src/DMthread/DMabstractions.h"
65 #include "paradyn/src/DMthread/DVbufferpool.h"
66
67
68 template class vector<unsigned>;
69 template class vector< vector<unsigned> >;
70 template class vector<int>;
71 template class vector< vector<string> >;
72 template class vector<phaseInfo *>;
73 template class vector<daemonEntry*>;
74 template class vector<paradynDaemon*>;
75 template class vector<executable*>;
76 template class vector<component*>;
77 template class vector<sampleInfo*>;
78 template class vector<bool>;
79 template class vector<metric_focus_pair>;
80 template class vector<met_name_id>;
81 template class vector<metric*>;
82 template class vector<resource*>;
83 template class vector<resourceList*>;
84 template class vector<abstraction*>;
85 template class vector<metricInstance*>;
86 template class vector<ArchiveType *>;
87 template class vector<rlNameIdType>;
88 template class dictionary<string,metric*>;
89 template class dictionary_hash<string,metric*>;
90 template class pair<string, metric*>;
91 template class vector< pair< string, metric*> >;
92 template class vector< dictionary_hash<string, metric *> :: hash_pair >;
93 template class vector< vector< dictionary_hash<string, metric *> :: hash_pair > >;
94 template class vector<dataValueType>;
95 template class BufferPool<dataValueType>;
96
97
98 template class dictionary<string, resource*>;
99 template class dictionary_hash<string, resource*>;
100 template class pair<string, resource*>;
101 template class vector< pair<string, resource*> >;
102 template class vector< dictionary_hash<string, resource*> :: hash_pair >;
103 template class vector< vector< dictionary_hash<string, resource*> :: hash_pair > >;
104
105 template class dictionary<unsigned int, cpContext*>;
106 template class dictionary_hash<unsigned int, cpContext*>;
107 template class pair<unsigned int, cpContext*>;
108 template class vector< pair<unsigned int, cpContext*> >;
109 template class vector< dictionary_hash<unsigned int, cpContext*> :: hash_pair >;
110 template class vector< vector< dictionary_hash<unsigned int, cpContext*> :: hash_pair > >;
111 template class vector<cpContext *>;
112
113 template class dictionary<string, resourceList*>;
114 template class dictionary_hash<string, resourceList*>;
115 template class pair<string, resourceList*>;
116 template class vector< pair<string, resourceList*> >;
117 template class vector< dictionary_hash<string, resourceList*> :: hash_pair >;
118 template class vector< vector< dictionary_hash<string, resourceList*> :: hash_pair > >;
119
120 template class dictionary<string, abstraction*>;
121 template class dictionary_hash<string, abstraction*>;
122 template class vector< dictionary_hash<string, abstraction*> :: hash_pair >;
123 template class vector< vector< dictionary_hash<string, abstraction*> :: hash_pair > >;
124 template class pair<string, abstraction*>;
125 template class vector< pair<string, abstraction*> >;
126 template class vector< vector< pair<string, abstraction*> > >;
127
128 template class vector<performanceStream *>;
129 template class pair< perfStreamHandle, performanceStream* >;
130 template class vector< pair< perfStreamHandle, performanceStream* > >;
131 template class dictionary<perfStreamHandle,performanceStream*>;
132 template class dictionary_hash<perfStreamHandle,performanceStream*>;
133 template class dictionary_hash_iter<perfStreamHandle,performanceStream*>;
134 template class vector< vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair > >;
135 template class vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair >;
136 template class dictionary_iter<unsigned, performanceStream *>;
137
138 template class dictionary<metricInstanceHandle,metricInstance*>;
139 template class pair<metricInstanceHandle, metricInstance*>;
140 template class vector< pair<metricInstanceHandle, metricInstance*> >; 
141 template class dictionary_hash<metricInstanceHandle,metricInstance*>;
142 template class dictionary_hash_iter<metricInstanceHandle,metricInstance*>;
143 template class vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair >;
144 template class vector< vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair > >;
145 template class dictionary_iter<unsigned, metricInstance *>;
146
147 template class List<sampleInfo*>;
148 template class ListItem<sampleInfo*>;
149
150 template class vector<T_dyninstRPC::batch_buffer_entry>;
151 template bool_t T_dyninstRPC_P_xdr_stl(XDR *, vector<T_dyninstRPC::batch_buffer_entry> *, int (*)(XDR *, T_dyninstRPC::batch_buffer_entry *), T_dyninstRPC::batch_buffer_entry *) ;
152
153 /* ********************************
154  * PCthread stuff
155  */
156
157 #include "paradyn/src/PCthread/PCintern.h"
158
159 #include "paradyn/src/PCthread/PCsearch.h"
160 #include "paradyn/src/PCthread/PCfilter.h"
161 #include "paradyn/src/PCthread/PCmetric.h"
162 #include "paradyn/src/PCthread/PCmetricInst.h"
163 #include "paradyn/src/PCthread/PCwhy.h"
164 #include "paradyn/src/PCthread/PCshg.h"
165 #include "paradyn/src/PCthread/PCdata.h"
166
167 template class vector<dataSubscriber*>;
168 template class vector<PCsearch*>;
169 template class vector<filter*>;
170 template class vector<PCMetInfo*>;
171 template class vector<PCmetric*>;
172 template class vector<PCMRec>;
173 template class vector<PCMRec*>;
174 template class vector<inPort*>;
175 template class vector<searchHistoryNode*>;
176 template class vector<hypothesis*>;
177 template class vector<PCmetricInst*>;
178 template class pair<PCmetricInst*, filter*>;
179
180 template class pair<unsigned, PCsearch*>;
181 template class dictionary<unsigned, PCsearch*>;
182 template class vector< pair<unsigned, PCsearch*> >;
183 template class vector<dictionary_hash<unsigned, PCsearch*>::hash_pair>;
184 template class vector< vector< dictionary_hash< unsigned, PCsearch*>::hash_pair> >;
185 template class dictionary_hash<unsigned, PCsearch*>;
186
187 #include "util/src/PriorityQueue.C"
188 template class PriorityQueue<unsigned, searchHistoryNode*>; 
189 template ostream &operator<<(ostream &, PriorityQueue<unsigned, searchHistoryNode*> &);
190 template class vector<PriorityQueue<unsigned, searchHistoryNode*>::pair>;
191
192 template class pair<unsigned, filter*>;
193 template class dictionary<unsigned, filter*>;
194 template class vector< pair< unsigned, filter*> >;
195 template class vector<dictionary_hash<unsigned, filter*>::hash_pair>;
196 template class vector< vector< dictionary_hash<unsigned, filter*>::hash_pair> >;
197 template class dictionary_hash<unsigned, filter*>;
198
199 template class pair<unsigned, searchHistoryNode*>;
200 template class dictionary<unsigned, searchHistoryNode*>;
201 template class vector< pair<unsigned, searchHistoryNode*> >;
202 template class vector< dictionary_hash<unsigned, searchHistoryNode*>::hash_pair>;
203 template class vector< vector< dictionary_hash<unsigned, searchHistoryNode*>::hash_pair> >;
204 template class dictionary_hash<unsigned, searchHistoryNode*>;
205
206 template class pair< metricHandle, dictionary_hash< unsigned, filter*>* >;
207 template class vector< dictionary_hash< unsigned, filter*>* >;
208 template class dictionary<metricHandle, dictionary_hash<unsigned, filter*>* >;
209 template class vector< pair<metricHandle, dictionary_hash<unsigned, filter*>* > >;
210 template class vector< dictionary_hash< metricHandle, dictionary_hash<unsigned, filter*>* >::hash_pair>;
211 template class vector< vector< dictionary_hash<metricHandle, dictionary_hash<unsigned, filter*>*>::hash_pair> >;
212 template class dictionary_hash<metricHandle, dictionary_hash<unsigned, filter*>* >; 
213
214 template class pair<string, PCmetric*>;
215 template class dictionary<string, PCmetric*>;
216 template class vector< pair<string, PCmetric*> >;
217 template class vector< dictionary_hash<string, PCmetric*>::hash_pair>;
218 template class vector< vector< dictionary_hash<string, PCmetric*>::hash_pair> >;
219 template class dictionary_hash<string, PCmetric*>;
220
221 template class pair<unsigned, PCmetricInst*>;
222 template class dictionary<unsigned, PCmetricInst*>;
223 template class vector< pair<unsigned, PCmetricInst*> >;
224 template class vector< dictionary_hash<unsigned, PCmetricInst*>::hash_pair>;
225 template class vector< vector< dictionary_hash<unsigned, PCmetricInst*>::hash_pair> >;
226 template class dictionary_hash<unsigned, PCmetricInst*>;
227
228 template class pair<string, hypothesis*>;
229 template class dictionary<string, hypothesis*>;
230 template class vector< pair< string, hypothesis*> >;
231 template class vector< dictionary_hash<string, hypothesis*>::hash_pair>;
232 template class vector< vector< dictionary_hash<string, hypothesis*>::hash_pair> >;
233 template class dictionary_hash<string, hypothesis*>;
234
235 template class pair<focus, vector<searchHistoryNode*>*>;
236 template class vector<vector<searchHistoryNode*>*>;
237 template class dictionary<focus, vector<searchHistoryNode*>*>;
238 template class vector< pair<focus, vector<searchHistoryNode*>*> >;
239 template class vector< dictionary_hash<focus, vector<searchHistoryNode*>*>::hash_pair>;
240 template class vector< vector< dictionary_hash<focus, vector<searchHistoryNode*>*>::hash_pair> >;
241 template class dictionary_hash<focus, vector<searchHistoryNode*>*>;
242
243
244 /* ************************************
245  * VMthread stuff
246  */
247 #include "paradyn/src/VMthread/VMtypes.h"
248 #include "VM.thread.h"
249
250 template class vector<VMactiveStruct *>;
251 template class vector<VMvisisStruct *>;
252 template class vector<VM_visiInfo>;
253
254 /* ******************************
255  * VISIthread stuff
256   */
257 template class vector<metricInstInfo *>;
258