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