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