*** empty log message ***
[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.25  1995/12/11 02:24:03  newhall
9  * added vector of rlNameId
10  *
11  * Revision 1.24  1995/12/09 04:06:51  tamches
12  * added some missing templates
13  *
14  * Revision 1.23  1995/12/03 21:32:29  newhall
15  * added BufferPool
16  *
17  * Revision 1.22  1995/11/29 00:15:35  tamches
18  * added stuff necessary for the new pdLogo.C file
19  *
20  * Revision 1.21  1995/11/20 03:19:08  tamches
21  * changed vector<whereAxisRootNode *> to const
22  *
23  * Revision 1.20  1995/11/06 19:31:06  tamches
24  * dictionary --> dictionary_lite changes in many classes used in the UI; results
25  * in fewer necessary instantiations.
26  * Got rid of some obsolete UI classes like pRec, resourceList, resource**
27  *
28  * Revision 1.19  1995/10/17 20:42:07  tamches
29  * Commented out references to the now-obsolete classes dag & shgDisplay.
30  * Added stuff for where axis changes (e.g. where4tree<whereAxisRootNode>
31  * instead of where4tree<resourceHandle).
32  * Added new search history graph.
33  *
34  * Revision 1.18  1995/10/05 04:43:52  karavan
35  * added template classes for changes to UI::PC interface.
36  * deleted obsolete (tokenRec class) and commented code.
37  *
38  * Revision 1.17  1995/09/20  01:13:21  tamches
39  * Where axis changes -- added graphicalPath
40  *
41  * Revision 1.16  1995/08/24  15:02:11  hollings
42  * AIX/SP-2 port (including option for split instruction/data heaps)
43  * Tracing of rexec (correctly spawns a paradynd if needed)
44  * Added rtinst function to read getrusage stats (can now be used in metrics)
45  * Critical Path
46  * Improved Error reporting in MDL sematic checks
47  * Fixed MDL Function call statement
48  * Fixed bugs in TK usage (strings passed where UID expected)
49  *
50  * Revision 1.15  1995/08/01  02:18:04  newhall
51  * changes to support phases
52  *
53  * Revision 1.14  1995/07/24 21:25:51  tamches
54  * removed list of resourceDisplayObj
55  *
56  * Revision 1.13  1995/07/17  05:04:23  tamches
57  * Changes for new where axis code.
58  *
59  * Revision 1.12  1995/06/02  20:55:51  newhall
60  * made code compatable with new DM interface
61  *
62  * Revision 1.11  1995/05/18  10:47:41  markc
63  * Removed duplicate template definitions
64  *
65  * Revision 1.10  1995/03/24  04:49:46  krisna
66  * added instantiations for lists within hash tables
67  *
68  * Revision 1.9  1995/03/15  20:12:22  jcargill
69  * Added instantiation of templates used by TCthread; this caused link
70  * problems only on HPUX for some strange reason.
71  *
72  * Revision 1.8  1995/02/27  18:40:05  tamches
73  * Minor changes to reflect new TCthread (tunable constant header
74  * files have moved)
75  *
76  * Revision 1.7  1995/02/26  02:27:51  newhall
77  * added source file DMphase.C
78  *
79  * Revision 1.6  1995/02/16  08:05:27  markc
80  * Added missing template instantiation requests.
81  * Changed template instantiation requests to the correct form.
82  *
83  * Revision 1.5  1995/01/26  17:57:00  jcargill
84  * Changed igen-generated include files to new naming convention; fixed
85  * some bugs compiling with gcc-2.6.3.
86  *
87  * Revision 1.4  1994/11/01  05:45:17  karavan
88  * UIthread changes to implement multiple focus selection on a single display
89  *
90  * Revision 1.3  1994/10/25  17:56:11  karavan
91  * added resource Display Objects for multiple abstractions to UIthread code
92  *
93  * Revision 1.2  1994/10/09  01:29:13  karavan
94  * added UIM templates connected with change to new UIM/visiThread metric-res
95  * selection interface.
96  *
97  * Revision 1.1  1994/09/22  00:49:12  markc
98  * Paradyn now uses one template code generating file.  All threads should use
99  * this file to generate template code.
100  *
101  * Revision 1.2  1994/08/22  15:59:31  markc
102  * Add List<daemonEntry*> which is the daemon definition dictionary.
103  *
104  * Revision 1.1  1994/05/19  00:02:18  hollings
105  * added templates.
106  *
107  *
108  */
109 #pragma implementation "list.h"
110 #include "util/h/list.h"
111
112 #include "util/h/String.h"
113
114 // Igen includes
115 #pragma implementation "Vector.h"
116 #include "util/h/Vector.h"
117 #pragma implementation "Queue.h"
118 #include "util/h/Queue.h"
119
120 #pragma implementation "BufferPool.h"
121 #include "paradyn/src/DMthread/BufferPool.h"
122
123 #pragma implementation "Dictionary.h"
124 #include "util/h/Dictionary.h"
125
126 #pragma implementation "DictionaryLite.h"
127 #include "util/src/DictionaryLite.C"
128
129 #pragma implementation "dyninstRPC.xdr.h"
130 #include "dyninstRPC.xdr.h"
131
132 #pragma implementation "visi.xdr.h"
133 #include "visi.xdr.h"
134
135
136 /* *********************************   
137  * DMthread stuff
138  */
139
140 #include "dataManager.thread.h"
141 #include "dyninstRPC.xdr.CLNT.h"
142 class cpContext;
143 #include "paradyn/src/DMthread/DMdaemon.h"
144 #include "paradyn/src/DMthread/DMmetric.h"
145 #include "paradyn/src/DMthread/DMresource.h"
146 #include "paradyn/src/DMthread/DMperfstream.h"
147 #include "paradyn/src/DMthread/DMinclude.h"
148 #include "paradyn/src/DMthread/DMabstractions.h"
149 #include "paradyn/src/DMthread/DVbufferpool.h"
150
151
152 template class vector<cpContext*>;
153 template class vector<unsigned>;
154 template class vector< vector<unsigned> >;
155 template class vector<int>;
156 template class vector< vector<string> >;
157 template class vector<phaseInfo *>;
158 template class vector<daemonEntry*>;
159 template class vector<paradynDaemon*>;
160 template class vector<executable*>;
161 template class vector<component*>;
162 template class vector<sampleInfo*>;
163 template class vector<bool>;
164 template class vector<metric_focus_pair>;
165 template class vector<met_name_id>;
166 template class vector<metric*>;
167 template class vector<resource*>;
168 template class vector<resourceList*>;
169 template class vector<abstraction*>;
170 template class vector<metricInstance*>;
171 template class vector<ArchiveType *>;
172 template class vector<rlNameIdType>;
173 template class dictionary<string,metric*>;
174 template class dictionary_hash<string,metric*>;
175 template class pair<string, metric*>;
176 template class vector< pair< string, metric*> >;
177 template class vector< dictionary_hash<string, metric *> :: hash_pair >;
178 template class vector< vector< dictionary_hash<string, metric *> :: hash_pair > >;
179 template class vector<dataValueType>;
180 template class BufferPool<dataValueType>;
181
182
183 template class dictionary<string, resource*>;
184 template class dictionary_hash<string, resource*>;
185 template class pair<string, resource*>;
186 template class vector< pair<string, resource*> >;
187 template class vector< dictionary_hash<string, resource*> :: hash_pair >;
188 template class vector< vector< dictionary_hash<string, resource*> :: hash_pair > >;
189
190 template class dictionary<string, resourceList*>;
191 template class dictionary_hash<string, resourceList*>;
192 template class pair<string, resourceList*>;
193 template class vector< pair<string, resourceList*> >;
194 template class vector< dictionary_hash<string, resourceList*> :: hash_pair >;
195 template class vector< vector< dictionary_hash<string, resourceList*> :: hash_pair > >;
196
197 template class dictionary<string, abstraction*>;
198 template class dictionary_hash<string, abstraction*>;
199 template class vector< dictionary_hash<string, abstraction*> :: hash_pair >;
200 template class vector< vector< dictionary_hash<string, abstraction*> :: hash_pair > >;
201 template class pair<string, abstraction*>;
202 template class vector< pair<string, abstraction*> >;
203 template class vector< vector< pair<string, abstraction*> > >;
204
205 template class vector<performanceStream *>;
206 template class pair< perfStreamHandle, performanceStream* >;
207 template class vector< pair< perfStreamHandle, performanceStream* > >;
208 template class dictionary<perfStreamHandle,performanceStream*>;
209 template class dictionary_hash<perfStreamHandle,performanceStream*>;
210 template class dictionary_hash_iter<perfStreamHandle,performanceStream*>;
211 template class vector< vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair > >;
212 template class vector< dictionary_hash<perfStreamHandle, performanceStream *> :: hash_pair >;
213 template class dictionary_iter<unsigned, performanceStream *>;
214
215 template class dictionary<metricInstanceHandle,metricInstance*>;
216 template class pair<metricInstanceHandle, metricInstance*>;
217 template class vector< pair<metricInstanceHandle, metricInstance*> >; 
218 template class dictionary_hash<metricInstanceHandle,metricInstance*>;
219 template class dictionary_hash_iter<metricInstanceHandle,metricInstance*>;
220 template class vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair >;
221 template class vector< vector< dictionary_hash<unsigned, metricInstance *> :: hash_pair > >;
222 template class dictionary_iter<unsigned, metricInstance *>;
223
224 template class List<sampleInfo*>;
225 template class ListItem<sampleInfo*>;
226 template class stack<T_dyninstRPC::buf_struct *>;
227 template class stack<T_visi::buf_struct *>;
228
229 /* ********************************
230  * PCthread stuff
231  */
232 #include "paradyn/src/PCthread/PCshg.h"
233 #include "paradyn/src/PCthread/PCevalTest.h"
234 #include "paradyn/src/PCthread/PCglobals.h"
235 #include "paradyn/src/PCthread/PCauto.h"
236 #include "paradyn/src/PCthread/PCwhen.h"
237 #include "paradyn/src/PCthread/PCwhere.h"
238 #include "paradyn/src/PCthread/PCwhy.h"
239
240 template class List<focus *>;
241 template class ListItem<focus *>;
242 template class List<focusList *>;
243 template class ListItem<focusList *>;
244 template class List<metricInstance *>;
245 template class ListItem<metricInstance *>;
246
247 template class HTable<PCmetric *>;
248 template class List<PCmetric *>;
249 template class ListItem<PCmetric *>;
250 template class HTable<datum *>;
251 template class HTable<focus *>;
252
253 template class List<datum *>;
254 template class ListItem<datum *>;
255 template class List<hint *>;
256 template class ListItem<hint *>;
257 template class List<hypothesis *>;
258 template class ListItem<hypothesis *>;
259 template class List<searchHistoryNode *>;
260 template class ListItem<searchHistoryNode *>;
261 template class List<test *>;
262 template class ListItem<test *>;
263 template class List<testResult *>;
264 template class ListItem<testResult *>;
265 template class List<timeInterval *>;
266 template class ListItem<timeInterval *>;
267
268 /* ******************************
269  * TCthread stuff
270  */
271 template class vector<tunableBooleanConstant>;
272 template class vector<tunableFloatConstant>;
273 template class dictionary_lite<string, tunableBooleanConstant>;
274 template class dictionary_lite<string, tunableFloatConstant>;
275 template class pair<string, tunableBooleanConstant>;
276 template class pair<string, tunableFloatConstant>;
277 template class vector< dictionary_lite<string, tunableBooleanConstant> :: hash_pair >;
278 template class vector< dictionary_lite<string, tunableFloatConstant> :: hash_pair >;
279 template class vector< vector< dictionary_lite<string, tunableBooleanConstant>::hash_pair > >;
280 template class vector< vector< dictionary_lite<string, tunableFloatConstant>::hash_pair > >;
281
282
283 /* *************************************
284  * UIthread stuff
285  */
286 // #include "paradyn/src/VMthread/metrespair.h"
287 #include "VM.thread.h"
288 #include "../src/UIthread/UIglobals.h"
289
290 template class List<metricInstInfo *>;
291 template class ListItem<metricInstInfo *>;
292 template class vector<VM_activeVisiInfo>;
293 template class vector<string*>;
294 template class dictionary<unsigned,string*>;
295 template class dictionary_hash<unsigned, string*>;
296 template class vector< pair<unsigned,string *> >;
297 template class pair<unsigned, string*>;
298 template class vector< vector<dictionary_hash<unsigned, string *>::hash_pair> >;
299 template class vector< dictionary_hash<unsigned, string *>::hash_pair >;
300
301 /* *************************************
302  * UIthread WhereAxis stuff
303  */
304
305 #include "paradyn/src/UIthread/where4tree.C"
306 #include "paradyn/src/UIthread/rootNode.h"
307 template class where4tree<whereAxisRootNode>;
308 template class vector<const whereAxisRootNode *>;
309 template class vector<where4tree<whereAxisRootNode>::childstruct>;
310 template class dictionary_lite< resourceHandle, where4tree<whereAxisRootNode> * >;
311 template class vector<where4tree<whereAxisRootNode> *>;
312 template class vector<dictionary_lite<resourceHandle,where4tree<whereAxisRootNode>*>::hash_pair>;
313 template class vector< vector< dictionary_lite<resourceHandle,where4tree<whereAxisRootNode>*>::hash_pair> >;
314 template class pair<resourceHandle, where4tree<whereAxisRootNode>* >;
315
316 #include "paradyn/src/UIthread/graphicalPath.C"
317 template class whereNodeGraphicalPath<whereAxisRootNode>;
318
319 #include "paradyn/src/UIthread/simpSeq.C"
320 template class simpSeq<unsigned>;
321
322 #include "paradyn/src/UIthread/abstractions.h"
323 template class vector<abstractions::whereAxisStruct>;
324
325 /* *************************************
326  * UIthread Search History Graph stuff
327  */
328
329 #include "paradyn/src/UIthread/shgRootNode.h"
330 template class where4tree<shgRootNode>;
331 template class vector<where4tree<shgRootNode>::childstruct>;
332 template class whereNodeGraphicalPath<shgRootNode>;
333 template class vector<const shgRootNode *>;
334
335 #include "paradyn/src/UIthread/shgPhases.h"
336 template class vector<shgPhases::shgStruct>;
337
338 template class dictionary_lite<unsigned, where4tree<shgRootNode> *>;
339 template class vector<where4tree<shgRootNode> *>;
340 template class vector<dictionary_lite<unsigned, where4tree<shgRootNode> *>::hash_pair>;
341 template class vector< vector< dictionary_lite<unsigned, where4tree<shgRootNode> *>::hash_pair> >;
342 template class pair<unsigned, where4tree<shgRootNode> *>;
343
344 template class dictionary_lite<where4tree<shgRootNode> *, where4tree<shgRootNode> *>;
345 template class vector<dictionary_lite<where4tree<shgRootNode> *, where4tree<shgRootNode> *>::hash_pair>;
346 template class vector< vector< dictionary_lite<where4tree<shgRootNode> *, where4tree<shgRootNode> *>::hash_pair> >;
347 template class pair<where4tree<shgRootNode> *, where4tree<shgRootNode> *>;
348
349 template class vector<Tk_3DBorder>; // shg consts
350
351 /* *************************************
352  * UIthread Logo Stuff
353  */
354
355 #include "paradyn/src/UIthread/pdLogo.h"
356 template class vector<pdLogo *>;
357 template class dictionary_lite<string, pdLogo *>;
358 template class pair<string, pdLogo *>;
359 template class vector<dictionary_lite<string, pdLogo *>::hash_pair>;
360 template class vector< vector<dictionary_lite<string,pdLogo*>::hash_pair> >;
361
362 template class dictionary_lite<string, pdLogo::logoStruct>;
363 template class vector<pdLogo::logoStruct>;
364 template class vector<dictionary_lite<string, pdLogo::logoStruct>::hash_pair>;
365 template class vector< vector<dictionary_lite<string, pdLogo::logoStruct>::hash_pair> >;
366 template class pair<string, pdLogo::logoStruct>;
367
368 /* *************************************
369  * UIthread Misc Stuff
370  */
371
372 #include "paradyn/src/UIthread/minmax.C"
373 template int min(int,int);
374 template int max(int,int);
375 template void ipmin(int &, int);
376 template void ipmax(int &, int);
377 template float min(float,float);
378 template float max(float,float);
379
380 /* ************************************
381  * VMthread stuff
382  */
383 #include "paradyn/src/VMthread/VMtypes.h"
384 #include "VM.thread.h"
385
386 template class vector<VMactiveStruct *>;
387 template class vector<VMvisisStruct *>;
388 template class vector<VM_visiInfo>;
389
390 /* ******************************
391  * VISIthread stuff
392  */
393 template class vector<metricInstInfo *>;
394
395 /* ***********************************
396  * met stuff
397  */
398 #include "paradyn/src/met/metParse.h" 
399 #include "paradyn/src/met/mdl.h" 
400
401 class stringList;
402 class daemonMet;
403 class processMet;
404 class visiMet;
405 class tunableMet;
406
407 template class vector<processMet *>;
408 template class vector<daemonMet*>;
409 template class vector<visiMet*>;
410 template class vector<tunableMet*>;
411 template class vector<string_list*>;
412 template class vector<pdFunction*>;
413 template class vector<module*>;
414 template class vector<instPoint*>;
415
416 // Igen - dyninstRPC stuff
417
418 template class vector<T_dyninstRPC::buf_struct*>;
419 template class queue<T_dyninstRPC::buf_struct*>;
420 template class vector<string>;
421 template class vector<T_dyninstRPC::mdl_expr*>;
422 template class vector<T_dyninstRPC::mdl_stmt*>;
423 template class vector<T_dyninstRPC::mdl_icode*>;
424 template class vector<T_dyninstRPC::mdl_constraint*>;
425 template class vector<T_dyninstRPC::metricInfo>;
426 template class vector<T_dyninstRPC::mdl_metric*>;
427 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<string>*, 
428         bool_t (*)(XDR*, string*), string*);
429 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
430         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
431 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*, 
432         bool_t (*)(XDR*, u_int*), u_int*);
433 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
434         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), T_dyninstRPC::mdl_stmt**);
435 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
436         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), T_dyninstRPC::mdl_icode**);
437 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, 
438         vector<T_dyninstRPC::mdl_constraint*>*, 
439         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
440         T_dyninstRPC::mdl_constraint**);
441 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::metricInfo>*,
442         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), T_dyninstRPC::metricInfo*);
443 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
444         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
445         T_dyninstRPC::mdl_metric**);
446 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<string>**, 
447         bool_t (*)(XDR*, string*), string*);
448 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
449         vector<T_dyninstRPC::mdl_expr*>**, 
450         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
451 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
452         vector<u_int>**, bool_t (*)(XDR*, u_int*), u_int*);
453 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
454         vector<T_dyninstRPC::mdl_stmt*>**, 
455         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), 
456         T_dyninstRPC::mdl_stmt**);
457 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
458         vector<T_dyninstRPC::mdl_icode*>**, 
459         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), 
460         T_dyninstRPC::mdl_icode**);
461 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
462         vector<T_dyninstRPC::mdl_constraint*>**, 
463         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
464         T_dyninstRPC::mdl_constraint**);
465 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
466         vector<T_dyninstRPC::metricInfo>**, 
467         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), 
468         T_dyninstRPC::metricInfo*);
469 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
470         vector<T_dyninstRPC::mdl_metric*>**, 
471         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
472         T_dyninstRPC::mdl_metric**);
473
474
475 // MDL stuff 
476
477 template class vector<dataReqNode *>;
478 template class vector<mdl_var>;
479 template class vector<mdl_focus_element>;
480 template class vector<mdl_type_desc>;
481 template class pair< unsigned, vector<mdl_type_desc> >;
482 template class vector< pair< unsigned, vector<mdl_type_desc> > >;
483 template class dictionary<unsigned, vector<mdl_type_desc> >;
484 template class dictionary_hash<unsigned, vector<mdl_type_desc> >;
485 template class vector< vector< mdl_type_desc > >;
486 template class vector< dictionary_hash< unsigned, vector<mdl_type_desc> > :: hash_pair >;
487 template class vector< vector< dictionary_hash<unsigned, vector<mdl_type_desc> > :: hash_pair > >;
488
489 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*,
490                                bool_t (*)(XDR*, u_int*), u_int*);
491
492 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
493                                bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
494                                        T_dyninstRPC::mdl_expr**);
495 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
496                                bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
497                                        T_dyninstRPC::mdl_stmt**);
498 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
499                                bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
500                                T_dyninstRPC::mdl_icode**);
501 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_constraint*>*,
502                                bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
503                                T_dyninstRPC::mdl_constraint**);
504 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
505                                bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
506                                T_dyninstRPC::mdl_metric**);
507
508
509 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_expr*>**,
510                            bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
511                            T_dyninstRPC::mdl_expr**);
512 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_stmt*>**,
513                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
514                                    T_dyninstRPC::mdl_stmt**);
515 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_icode*>**,
516                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
517                                    T_dyninstRPC::mdl_icode**);
518 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_constraint*>**,
519                            bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
520                            T_dyninstRPC::mdl_constraint**);
521 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_metric*>**,
522                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
523                                    T_dyninstRPC::mdl_metric**);
524
525 // Igen - visi stuff
526
527 template class vector<T_visi::buf_struct*>;
528 template class queue<T_visi::buf_struct*>;
529 template class vector<T_visi::dataValue>;
530 template class vector<T_visi::visi_matrix>;
531 template class vector<T_visi::phase_info>;
532 template class vector<float>;
533 template bool_t T_visi_P_xdr_stl(XDR*, vector<string>*, 
534         bool_t (*)(XDR*, string*), string*);
535 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::dataValue>*, 
536         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
537 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::visi_matrix>*,
538         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
539 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::phase_info>*, 
540         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
541 template bool_t T_visi_P_xdr_stl(XDR*, vector<float>*, 
542         bool_t (*)(XDR*, float*), float*);
543 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<string>**, 
544         bool_t (*)(XDR*, string*), string*);
545 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::dataValue>**, 
546         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
547 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::visi_matrix>**,
548         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
549 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::phase_info>**, 
550         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
551 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<float>**, 
552         bool_t (*)(XDR*, float*), float*);
553