made code compatable with new DM interface
[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.12  1995/06/02 20:55:51  newhall
9  * made code compatable with new DM interface
10  *
11  * Revision 1.11  1995/05/18  10:47:41  markc
12  * Removed duplicate template definitions
13  *
14  * Revision 1.10  1995/03/24  04:49:46  krisna
15  * added instantiations for lists within hash tables
16  *
17  * Revision 1.9  1995/03/15  20:12:22  jcargill
18  * Added instantiation of templates used by TCthread; this caused link
19  * problems only on HPUX for some strange reason.
20  *
21  * Revision 1.8  1995/02/27  18:40:05  tamches
22  * Minor changes to reflect new TCthread (tunable constant header
23  * files have moved)
24  *
25  * Revision 1.7  1995/02/26  02:27:51  newhall
26  * added source file DMphase.C
27  *
28  * Revision 1.6  1995/02/16  08:05:27  markc
29  * Added missing template instantiation requests.
30  * Changed template instantiation requests to the correct form.
31  *
32  * Revision 1.5  1995/01/26  17:57:00  jcargill
33  * Changed igen-generated include files to new naming convention; fixed
34  * some bugs compiling with gcc-2.6.3.
35  *
36  * Revision 1.4  1994/11/01  05:45:17  karavan
37  * UIthread changes to implement multiple focus selection on a single display
38  *
39  * Revision 1.3  1994/10/25  17:56:11  karavan
40  * added resource Display Objects for multiple abstractions to UIthread code
41  *
42  * Revision 1.2  1994/10/09  01:29:13  karavan
43  * added UIM templates connected with change to new UIM/visiThread metric-res
44  * selection interface.
45  *
46  * Revision 1.1  1994/09/22  00:49:12  markc
47  * Paradyn now uses one template code generating file.  All threads should use
48  * this file to generate template code.
49  *
50  * Revision 1.2  1994/08/22  15:59:31  markc
51  * Add List<daemonEntry*> which is the daemon definition dictionary.
52  *
53  * Revision 1.1  1994/05/19  00:02:18  hollings
54  * added templates.
55  *
56  *
57  */
58 #pragma implementation "list.h"
59 #include "util/h/list.h"
60
61 #include "util/h/String.h"
62 //#include "util/h/tunableConst.h"
63
64 // Igen includes
65 #pragma implementation "Vector.h"
66 #include "util/h/Vector.h"
67 #pragma implementation "Queue.h"
68 #include "util/h/Queue.h"
69
70 #pragma implementation "Dictionary.h"
71 #include "util/h/Dictionary.h"
72
73 #pragma implementation "dyninstRPC.xdr.h"
74 #include "dyninstRPC.xdr.h"
75
76 #pragma implementation "visi.xdr.h"
77 #include "visi.xdr.h"
78
79
80 /* *********************************   
81  * DMthread stuff
82  */
83
84 #include "dataManager.thread.h"
85 #include "dyninstRPC.xdr.CLNT.h"
86 #include "paradyn/src/DMthread/DMdaemon.h"
87 #include "paradyn/src/DMthread/DMmetric.h"
88 #include "paradyn/src/DMthread/DMresource.h"
89 #include "paradyn/src/DMthread/DMperfstream.h"
90 #include "paradyn/src/DMthread/DMinclude.h"
91 #include "paradyn/src/DMthread/DMabstractions.h"
92
93
94 template class vector<unsigned>;
95 template class vector<int>;
96 template class vector< vector<string> >;
97 template class vector<phaseInfo *>;
98 template class vector<daemonEntry*>;
99 template class vector<paradynDaemon*>;
100 template class vector<executable*>;
101 template class vector<component*>;
102 template class vector<sampleInfo*>;
103 template class vector<bool>;
104 template class vector<metric_focus_pair>;
105 template class vector<met_name_id>;
106 template class vector<metric*>;
107 template class vector<resource*>;
108 template class vector<resourceList*>;
109 template class vector<abstraction*>;
110 template class vector<performanceStream *>;
111 template class vector<metricInstance*>;
112 template class dictionary_hash<string,metric*>;
113 template class dictionary_hash<string, resource*>;
114 template class dictionary_hash<string, resourceList*>;
115 template class dictionary_hash<string, abstraction*>;
116 template class dictionary_hash<perfStreamHandle,performanceStream*>;
117 template class dictionary_hash_iter<perfStreamHandle,performanceStream*>;
118 template class dictionary_hash<metricInstanceHandle,metricInstance*>;
119 template class dictionary_hash_iter<metricInstanceHandle,metricInstance*>;
120 template class List<sampleInfo*>;
121
122
123 /* ********************************
124  * PCthread stuff
125  */
126 #include "paradyn/src/PCthread/PCshg.h"
127 #include "paradyn/src/PCthread/PCevalTest.h"
128 #include "paradyn/src/PCthread/PCglobals.h"
129 #include "paradyn/src/PCthread/PCauto.h"
130 #include "paradyn/src/PCthread/PCwhen.h"
131 #include "paradyn/src/PCthread/PCwhere.h"
132 #include "paradyn/src/PCthread/PCwhy.h"
133
134 template class List<focus *>;
135 template class List<focusList *>;
136 template class List<metricInstance *>;
137
138 template class HTable<PCmetric *>;
139 template class List<PCmetric *>;
140 template class HTable<datum *>;
141 template class HTable<focus *>;
142
143 template class List<datum *>;
144 template class List<hint *>;
145 template class List<hypothesis *>;
146 template class List<searchHistoryNode *>;
147 template class List<test *>;
148 template class List<testResult *>;
149 template class List<timeInterval *>;
150
151 /* ******************************
152  * TCthread stuff
153  */
154 template class vector<tunableBooleanConstant>;
155 template class vector<tunableFloatConstant>;
156 template class dictionary_hash<string, tunableBooleanConstant>;
157 template class dictionary_hash<string, tunableFloatConstant>;
158
159
160 /* *************************************
161  * UIthread stuff
162  */
163 // #include "paradyn/src/VMthread/metrespair.h"
164 #include "VM.thread.h"
165 #include "../src/UIthread/UIglobals.h"
166 class resourceList;
167 class pRec;
168
169 template class HTable<pRec *>;
170 template class List<resourceDisplayObj *>;
171 template class List<resourceList *>;
172 template class List<metricInstInfo *>;
173 template class List<tokenRec *>;
174 template class List<stringHandle>;
175 template class List<dag *>;
176 template class List<resource **>;
177 template class vector<numlist>;
178 template class vector<VM_activeVisiInfo>;
179
180 /* ************************************
181  * VMthread stuff
182  */
183 #include "paradyn/src/VMthread/VMtypes.h"
184 #include "VM.thread.h"
185
186 template class vector<VMactiveStruct *>;
187 template class vector<VMvisisStruct *>;
188 template class vector<VM_visiInfo>;
189
190 /* ******************************
191  * VISIthread stuff
192  */
193 template class vector<metricInstInfo *>;
194
195 /* ***********************************
196  * met stuff
197  */
198 #include "paradyn/src/met/metParse.h" 
199 #include "paradyn/src/met/mdl.h" 
200
201 class stringList;
202 class daemonMet;
203 class processMet;
204 class visiMet;
205 class tunableMet;
206
207 template class vector<processMet *>;
208 template class vector<daemonMet*>;
209 template class vector<visiMet*>;
210 template class vector<tunableMet*>;
211 template class vector<string_list*>;
212 template class vector<pdFunction*>;
213 template class vector<module*>;
214 template class vector<instPoint*>;
215
216 // Igen - dyninstRPC stuff
217
218 template class vector<T_dyninstRPC::buf_struct*>;
219 template class queue<T_dyninstRPC::buf_struct*>;
220 template class vector<string>;
221 template class vector<T_dyninstRPC::mdl_expr*>;
222 template class vector<T_dyninstRPC::mdl_stmt*>;
223 template class vector<T_dyninstRPC::mdl_icode*>;
224 template class vector<T_dyninstRPC::mdl_constraint*>;
225 template class vector<T_dyninstRPC::metricInfo>;
226 template class vector<T_dyninstRPC::mdl_metric*>;
227 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<string>*, 
228         bool_t (*)(XDR*, string*), string*);
229 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
230         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
231 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*, 
232         bool_t (*)(XDR*, u_int*), u_int*);
233 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
234         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), T_dyninstRPC::mdl_stmt**);
235 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
236         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), T_dyninstRPC::mdl_icode**);
237 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, 
238         vector<T_dyninstRPC::mdl_constraint*>*, 
239         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
240         T_dyninstRPC::mdl_constraint**);
241 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::metricInfo>*,
242         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), T_dyninstRPC::metricInfo*);
243 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
244         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
245         T_dyninstRPC::mdl_metric**);
246 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<string>**, 
247         bool_t (*)(XDR*, string*), string*);
248 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
249         vector<T_dyninstRPC::mdl_expr*>**, 
250         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
251 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
252         vector<u_int>**, bool_t (*)(XDR*, u_int*), u_int*);
253 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
254         vector<T_dyninstRPC::mdl_stmt*>**, 
255         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), 
256         T_dyninstRPC::mdl_stmt**);
257 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
258         vector<T_dyninstRPC::mdl_icode*>**, 
259         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), 
260         T_dyninstRPC::mdl_icode**);
261 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
262         vector<T_dyninstRPC::mdl_constraint*>**, 
263         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
264         T_dyninstRPC::mdl_constraint**);
265 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
266         vector<T_dyninstRPC::metricInfo>**, 
267         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), 
268         T_dyninstRPC::metricInfo*);
269 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
270         vector<T_dyninstRPC::mdl_metric*>**, 
271         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
272         T_dyninstRPC::mdl_metric**);
273
274
275 // MDL stuff 
276
277 template class vector<dataReqNode *>;
278 template class vector<mdl_var>;
279 template class vector<mdl_focus_element>;
280 template class vector<mdl_type_desc>;
281 template class dictionary_hash<unsigned, vector<mdl_type_desc> >;
282
283 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*,
284                                bool_t (*)(XDR*, u_int*), u_int*);
285
286 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
287                                bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
288                                        T_dyninstRPC::mdl_expr**);
289 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
290                                bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
291                                        T_dyninstRPC::mdl_stmt**);
292 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
293                                bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
294                                T_dyninstRPC::mdl_icode**);
295 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_constraint*>*,
296                                bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
297                                T_dyninstRPC::mdl_constraint**);
298 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
299                                bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
300                                T_dyninstRPC::mdl_metric**);
301
302
303 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_expr*>**,
304                            bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
305                            T_dyninstRPC::mdl_expr**);
306 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_stmt*>**,
307                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
308                                    T_dyninstRPC::mdl_stmt**);
309 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_icode*>**,
310                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
311                                    T_dyninstRPC::mdl_icode**);
312 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_constraint*>**,
313                            bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
314                            T_dyninstRPC::mdl_constraint**);
315 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_metric*>**,
316                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
317                                    T_dyninstRPC::mdl_metric**);
318
319 // Igen - visi stuff
320
321 template class vector<T_visi::buf_struct*>;
322 template class queue<T_visi::buf_struct*>;
323 template class vector<T_visi::dataValue>;
324 template class vector<T_visi::visi_matrix>;
325 template class vector<T_visi::phase_info>;
326 template class vector<float>;
327 template bool_t T_visi_P_xdr_stl(XDR*, vector<string>*, 
328         bool_t (*)(XDR*, string*), string*);
329 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::dataValue>*, 
330         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
331 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::visi_matrix>*,
332         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
333 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::phase_info>*, 
334         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
335 template bool_t T_visi_P_xdr_stl(XDR*, vector<float>*, 
336         bool_t (*)(XDR*, float*), float*);
337 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<string>**, 
338         bool_t (*)(XDR*, string*), string*);
339 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::dataValue>**, 
340         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
341 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::visi_matrix>**,
342         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
343 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::phase_info>**, 
344         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
345 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<float>**, 
346         bool_t (*)(XDR*, float*), float*);
347