removed list of resourceDisplayObj
[dyninst.git] / paradyn / src / templates.C
1 /*
2  * Put all the templates in one file
3  *
4  */
5
6 /*
7  * $Log: templates.C,v $
8  * Revision 1.14  1995/07/24 21:25:51  tamches
9  * removed list of resourceDisplayObj
10  *
11  * Revision 1.13  1995/07/17  05:04:23  tamches
12  * Changes for new where axis code.
13  *
14  * Revision 1.12  1995/06/02  20:55:51  newhall
15  * made code compatable with new DM interface
16  *
17  * Revision 1.11  1995/05/18  10:47:41  markc
18  * Removed duplicate template definitions
19  *
20  * Revision 1.10  1995/03/24  04:49:46  krisna
21  * added instantiations for lists within hash tables
22  *
23  * Revision 1.9  1995/03/15  20:12:22  jcargill
24  * Added instantiation of templates used by TCthread; this caused link
25  * problems only on HPUX for some strange reason.
26  *
27  * Revision 1.8  1995/02/27  18:40:05  tamches
28  * Minor changes to reflect new TCthread (tunable constant header
29  * files have moved)
30  *
31  * Revision 1.7  1995/02/26  02:27:51  newhall
32  * added source file DMphase.C
33  *
34  * Revision 1.6  1995/02/16  08:05:27  markc
35  * Added missing template instantiation requests.
36  * Changed template instantiation requests to the correct form.
37  *
38  * Revision 1.5  1995/01/26  17:57:00  jcargill
39  * Changed igen-generated include files to new naming convention; fixed
40  * some bugs compiling with gcc-2.6.3.
41  *
42  * Revision 1.4  1994/11/01  05:45:17  karavan
43  * UIthread changes to implement multiple focus selection on a single display
44  *
45  * Revision 1.3  1994/10/25  17:56:11  karavan
46  * added resource Display Objects for multiple abstractions to UIthread code
47  *
48  * Revision 1.2  1994/10/09  01:29:13  karavan
49  * added UIM templates connected with change to new UIM/visiThread metric-res
50  * selection interface.
51  *
52  * Revision 1.1  1994/09/22  00:49:12  markc
53  * Paradyn now uses one template code generating file.  All threads should use
54  * this file to generate template code.
55  *
56  * Revision 1.2  1994/08/22  15:59:31  markc
57  * Add List<daemonEntry*> which is the daemon definition dictionary.
58  *
59  * Revision 1.1  1994/05/19  00:02:18  hollings
60  * added templates.
61  *
62  *
63  */
64 #pragma implementation "list.h"
65 #include "util/h/list.h"
66
67 #include "util/h/String.h"
68 //#include "util/h/tunableConst.h"
69
70 // Igen includes
71 #pragma implementation "Vector.h"
72 #include "util/h/Vector.h"
73 #pragma implementation "Queue.h"
74 #include "util/h/Queue.h"
75
76 #pragma implementation "Dictionary.h"
77 #include "util/h/Dictionary.h"
78
79 #pragma implementation "dyninstRPC.xdr.h"
80 #include "dyninstRPC.xdr.h"
81
82 #pragma implementation "visi.xdr.h"
83 #include "visi.xdr.h"
84
85
86 /* *********************************   
87  * DMthread stuff
88  */
89
90 #include "dataManager.thread.h"
91 #include "dyninstRPC.xdr.CLNT.h"
92 #include "paradyn/src/DMthread/DMdaemon.h"
93 #include "paradyn/src/DMthread/DMmetric.h"
94 #include "paradyn/src/DMthread/DMresource.h"
95 #include "paradyn/src/DMthread/DMperfstream.h"
96 #include "paradyn/src/DMthread/DMinclude.h"
97 #include "paradyn/src/DMthread/DMabstractions.h"
98
99
100 template class vector<unsigned>;
101 template class vector<int>;
102 template class vector< vector<string> >;
103 template class vector<phaseInfo *>;
104 template class vector<daemonEntry*>;
105 template class vector<paradynDaemon*>;
106 template class vector<executable*>;
107 template class vector<component*>;
108 template class vector<sampleInfo*>;
109 template class vector<bool>;
110 template class vector<metric_focus_pair>;
111 template class vector<met_name_id>;
112 template class vector<metric*>;
113 template class vector<resource*>;
114 template class vector<resourceList*>;
115 template class vector<abstraction*>;
116 template class vector<metricInstance*>;
117 template class dictionary<string,metric*>;
118 template class dictionary_hash<string,metric*>;
119 template class pair<string, metric*>;
120 template class vector< pair< string, metric*> >;
121 template class vector< dictionary_hash<string, metric *> :: hash_pair >;
122 template class vector< vector< dictionary_hash<string, metric *> :: hash_pair > >;
123
124
125 template class dictionary<string, resource*>;
126 template class dictionary_hash<string, resource*>;
127 template class pair<string, resource*>;
128 template class vector< pair<string, resource*> >;
129 template class vector< dictionary_hash<string, resource*> :: hash_pair >;
130 template class vector< vector< dictionary_hash<string, resource*> :: hash_pair > >;
131
132 template class dictionary<string, resourceList*>;
133 template class dictionary_hash<string, resourceList*>;
134 template class pair<string, resourceList*>;
135 template class vector< pair<string, resourceList*> >;
136 template class vector< dictionary_hash<string, resourceList*> :: hash_pair >;
137 template class vector< vector< dictionary_hash<string, resourceList*> :: hash_pair > >;
138
139 template class dictionary<string, abstraction*>;
140 template class dictionary_hash<string, abstraction*>;
141 template class vector< dictionary_hash<string, abstraction*> :: hash_pair >;
142 template class vector< vector< dictionary_hash<string, abstraction*> :: hash_pair > >;
143 template class pair<string, abstraction*>;
144 template class vector< pair<string, abstraction*> >;
145 template class vector< vector< pair<string, abstraction*> > >;
146
147 template class vector<performanceStream *>;
148 template class pair< perfStreamHandle, performanceStream* >;
149 template class vector< pair< perfStreamHandle, performanceStream* > >;
150 template class dictionary<perfStreamHandle,performanceStream*>;
151 template class dictionary_hash<perfStreamHandle,performanceStream*>;
152 template class dictionary_hash_iter<perfStreamHandle,performanceStream*>;
153 template class vector< vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair > >;
154 template class vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair >;
155 template class dictionary_iter<unsigned, performanceStream *>;
156
157 template class dictionary<metricInstanceHandle,metricInstance*>;
158 template class pair<metricInstanceHandle, metricInstance*>;
159 template class vector< pair<metricInstanceHandle, metricInstance*> >; 
160 template class dictionary_hash<metricInstanceHandle,metricInstance*>;
161 template class dictionary_hash_iter<metricInstanceHandle,metricInstance*>;
162 template class vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair >;
163 template class vector< vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair > >;
164 template class dictionary_iter<unsigned, metricInstance *>;
165
166 template class List<sampleInfo*>;
167 template class ListItem<sampleInfo*>;
168 template class stack<T_dyninstRPC::buf_struct *>;
169 template class stack<T_visi::buf_struct *>;
170
171 /* ********************************
172  * PCthread stuff
173  */
174 #include "paradyn/src/PCthread/PCshg.h"
175 #include "paradyn/src/PCthread/PCevalTest.h"
176 #include "paradyn/src/PCthread/PCglobals.h"
177 #include "paradyn/src/PCthread/PCauto.h"
178 #include "paradyn/src/PCthread/PCwhen.h"
179 #include "paradyn/src/PCthread/PCwhere.h"
180 #include "paradyn/src/PCthread/PCwhy.h"
181
182 template class List<focus *>;
183 template class ListItem<focus *>;
184 template class List<focusList *>;
185 template class ListItem<focusList *>;
186 template class List<metricInstance *>;
187 template class ListItem<metricInstance *>;
188
189 template class HTable<PCmetric *>;
190 template class List<PCmetric *>;
191 template class ListItem<PCmetric *>;
192 template class HTable<datum *>;
193 template class HTable<focus *>;
194
195 template class List<datum *>;
196 template class ListItem<datum *>;
197 template class List<hint *>;
198 template class ListItem<hint *>;
199 template class List<hypothesis *>;
200 template class ListItem<hypothesis *>;
201 template class List<searchHistoryNode *>;
202 template class ListItem<searchHistoryNode *>;
203 template class List<test *>;
204 template class ListItem<test *>;
205 template class List<testResult *>;
206 template class ListItem<testResult *>;
207 template class List<timeInterval *>;
208 template class ListItem<timeInterval *>;
209
210 /* ******************************
211  * TCthread stuff
212  */
213 template class vector<tunableBooleanConstant>;
214 template class vector<tunableFloatConstant>;
215 template class dictionary<string, tunableBooleanConstant>;
216 template class dictionary<string, tunableFloatConstant>;
217 template class dictionary_hash<string, tunableBooleanConstant>;
218 template class dictionary_hash<string, tunableFloatConstant>;
219 template class pair<string, tunableBooleanConstant>;
220 template class pair<string, tunableFloatConstant>;
221 template class vector< pair<string, tunableBooleanConstant> >;
222 template class vector< pair<string, tunableFloatConstant> >;
223 template class vector< dictionary_hash<string, tunableBooleanConstant> :: hash_pair >;
224 template class vector< dictionary_hash<string, tunableFloatConstant> :: hash_pair >;
225 template class vector< vector< dictionary_hash<string, tunableBooleanConstant>::hash_pair > >;
226 template class vector< vector< dictionary_hash<string, tunableFloatConstant>::hash_pair > >;
227
228
229 /* *************************************
230  * UIthread stuff
231  */
232 // #include "paradyn/src/VMthread/metrespair.h"
233 #include "VM.thread.h"
234 #include "../src/UIthread/UIglobals.h"
235 class resourceList;
236 class pRec;
237
238 template class HTable<pRec *>;
239 template class List<pRec *>;
240 template class ListItem<pRec *>;
241 //template class List<resourceDisplayObj *>;
242 //template class ListItem<resourceDisplayObj *>;
243 template class List<resourceList *>;
244 template class ListItem<resourceList *>;
245 template class List<metricInstInfo *>;
246 template class ListItem<metricInstInfo *>;
247 template class List<tokenRec *>;
248 template class ListItem<tokenRec *>;
249 template class List<stringHandle>;
250 template class ListItem<stringHandle>;
251 template class List<dag *>;
252 template class ListItem<dag *>;
253 template class List<resource **>;
254 template class ListItem<resource **>;
255 template class vector<numlist>;
256 template class vector<VM_activeVisiInfo>;
257
258 /* *************************************
259  * UIthread WhereAxis stuff
260  */
261
262 #include "paradyn/src/UIthread/where4tree.C"
263 template class where4tree<resourceHandle>;
264 template class vector<where4tree<resourceHandle>::childstruct>;
265 template class dictionary<resourceHandle, where4tree<resourceHandle> *>;
266 template class dictionary_hash< resourceHandle, where4tree<resourceHandle> * >;
267 //template class vector<resourceHandle>; [vector<unsigned> was already explicitly instantiated above]
268 template class vector<where4tree<resourceHandle> *>;
269 template class vector< pair<resourceHandle, where4tree<resourceHandle>*> >;
270 template class vector<dictionary_hash<resourceHandle,where4tree<resourceHandle>*>::hash_pair>;
271 template class vector< vector< dictionary_hash<resourceHandle,where4tree<resourceHandle>*>::hash_pair> >;
272 template class pair<resourceHandle, where4tree<resourceHandle>* >;
273
274
275 #include "paradyn/src/UIthread/simpSeq.C"
276 template class simpSeq<whereNodeRawPathItem>;
277 template class simpSeq<whereNodeGraphicalPathItem>;
278
279 #include "paradyn/src/UIthread/whereAxis.C"
280 template class whereAxis<resourceHandle>;
281 template class vector<whereAxis<resourceHandle> *>;
282
283 #include "paradyn/src/UIthread/abstractions.C"
284 template class vector<abstractions<resourceHandle>::whereAxisStruct>;
285 template class abstractions<resourceHandle>;
286
287 #include "paradyn/src/UIthread/minmax.C"
288 template int min(int,int);
289 template int max(int,int);
290 template float min(float,float);
291 template float max(float,float);
292
293 /* ************************************
294  * VMthread stuff
295  */
296 #include "paradyn/src/VMthread/VMtypes.h"
297 #include "VM.thread.h"
298
299 template class vector<VMactiveStruct *>;
300 template class vector<VMvisisStruct *>;
301 template class vector<VM_visiInfo>;
302
303 /* ******************************
304  * VISIthread stuff
305  */
306 template class vector<metricInstInfo *>;
307
308 /* ***********************************
309  * met stuff
310  */
311 #include "paradyn/src/met/metParse.h" 
312 #include "paradyn/src/met/mdl.h" 
313
314 class stringList;
315 class daemonMet;
316 class processMet;
317 class visiMet;
318 class tunableMet;
319
320 template class vector<processMet *>;
321 template class vector<daemonMet*>;
322 template class vector<visiMet*>;
323 template class vector<tunableMet*>;
324 template class vector<string_list*>;
325 template class vector<pdFunction*>;
326 template class vector<module*>;
327 template class vector<instPoint*>;
328
329 // Igen - dyninstRPC stuff
330
331 template class vector<T_dyninstRPC::buf_struct*>;
332 template class queue<T_dyninstRPC::buf_struct*>;
333 template class vector<string>;
334 template class vector<T_dyninstRPC::mdl_expr*>;
335 template class vector<T_dyninstRPC::mdl_stmt*>;
336 template class vector<T_dyninstRPC::mdl_icode*>;
337 template class vector<T_dyninstRPC::mdl_constraint*>;
338 template class vector<T_dyninstRPC::metricInfo>;
339 template class vector<T_dyninstRPC::mdl_metric*>;
340 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<string>*, 
341         bool_t (*)(XDR*, string*), string*);
342 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
343         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
344 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*, 
345         bool_t (*)(XDR*, u_int*), u_int*);
346 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
347         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), T_dyninstRPC::mdl_stmt**);
348 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
349         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), T_dyninstRPC::mdl_icode**);
350 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, 
351         vector<T_dyninstRPC::mdl_constraint*>*, 
352         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
353         T_dyninstRPC::mdl_constraint**);
354 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::metricInfo>*,
355         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), T_dyninstRPC::metricInfo*);
356 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
357         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
358         T_dyninstRPC::mdl_metric**);
359 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<string>**, 
360         bool_t (*)(XDR*, string*), string*);
361 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
362         vector<T_dyninstRPC::mdl_expr*>**, 
363         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
364 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
365         vector<u_int>**, bool_t (*)(XDR*, u_int*), u_int*);
366 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
367         vector<T_dyninstRPC::mdl_stmt*>**, 
368         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), 
369         T_dyninstRPC::mdl_stmt**);
370 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
371         vector<T_dyninstRPC::mdl_icode*>**, 
372         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), 
373         T_dyninstRPC::mdl_icode**);
374 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
375         vector<T_dyninstRPC::mdl_constraint*>**, 
376         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
377         T_dyninstRPC::mdl_constraint**);
378 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
379         vector<T_dyninstRPC::metricInfo>**, 
380         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), 
381         T_dyninstRPC::metricInfo*);
382 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
383         vector<T_dyninstRPC::mdl_metric*>**, 
384         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
385         T_dyninstRPC::mdl_metric**);
386
387
388 // MDL stuff 
389
390 template class vector<dataReqNode *>;
391 template class vector<mdl_var>;
392 template class vector<mdl_focus_element>;
393 template class vector<mdl_type_desc>;
394 template class pair< unsigned, vector<mdl_type_desc> >;
395 template class vector< pair< unsigned, vector<mdl_type_desc> > >;
396 template class dictionary<unsigned, vector<mdl_type_desc> >;
397 template class dictionary_hash<unsigned, vector<mdl_type_desc> >;
398 template class vector< vector< mdl_type_desc > >;
399 template class vector< dictionary_hash< unsigned, vector<mdl_type_desc> > :: hash_pair >;
400 template class vector< vector< dictionary_hash<unsigned, vector<mdl_type_desc> > :: hash_pair > >;
401
402 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*,
403                                bool_t (*)(XDR*, u_int*), u_int*);
404
405 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
406                                bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
407                                        T_dyninstRPC::mdl_expr**);
408 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
409                                bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
410                                        T_dyninstRPC::mdl_stmt**);
411 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
412                                bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
413                                T_dyninstRPC::mdl_icode**);
414 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_constraint*>*,
415                                bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
416                                T_dyninstRPC::mdl_constraint**);
417 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
418                                bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
419                                T_dyninstRPC::mdl_metric**);
420
421
422 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_expr*>**,
423                            bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
424                            T_dyninstRPC::mdl_expr**);
425 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_stmt*>**,
426                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
427                                    T_dyninstRPC::mdl_stmt**);
428 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_icode*>**,
429                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
430                                    T_dyninstRPC::mdl_icode**);
431 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_constraint*>**,
432                            bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
433                            T_dyninstRPC::mdl_constraint**);
434 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_metric*>**,
435                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
436                                    T_dyninstRPC::mdl_metric**);
437
438 // Igen - visi stuff
439
440 template class vector<T_visi::buf_struct*>;
441 template class queue<T_visi::buf_struct*>;
442 template class vector<T_visi::dataValue>;
443 template class vector<T_visi::visi_matrix>;
444 template class vector<T_visi::phase_info>;
445 template class vector<float>;
446 template bool_t T_visi_P_xdr_stl(XDR*, vector<string>*, 
447         bool_t (*)(XDR*, string*), string*);
448 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::dataValue>*, 
449         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
450 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::visi_matrix>*,
451         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
452 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::phase_info>*, 
453         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
454 template bool_t T_visi_P_xdr_stl(XDR*, vector<float>*, 
455         bool_t (*)(XDR*, float*), float*);
456 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<string>**, 
457         bool_t (*)(XDR*, string*), string*);
458 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::dataValue>**, 
459         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
460 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::visi_matrix>**,
461         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
462 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::phase_info>**, 
463         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
464 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<float>**, 
465         bool_t (*)(XDR*, float*), float*);
466