removed class pdFunction
[dyninst.git] / paradyn / src / templatesIGENMDL.C
1 /*
2  * Copyright (c) 1996 Barton P. Miller
3  * 
4  * We provide the Paradyn Parallel Performance Tools (below
5  * described as Paradyn") on an AS IS basis, and do not warrant its
6  * validity or performance.  We reserve the right to update, modify,
7  * or discontinue this software at any time.  We shall have no
8  * obligation to supply such updates or modifications or any other
9  * form of support to you.
10  * 
11  * This license is for research uses.  For such uses, there is no
12  * charge. We define "research use" to mean you may freely use it
13  * inside your organization for whatever purposes you see fit. But you
14  * may not re-distribute Paradyn or parts of Paradyn, in any form
15  * source or binary (including derivatives), electronic or otherwise,
16  * to any other organization or entity without our permission.
17  * 
18  * (for other uses, please contact us at paradyn@cs.wisc.edu)
19  * 
20  * All warranties, including without limitation, any warranty of
21  * merchantability or fitness for a particular purpose, are hereby
22  * excluded.
23  * 
24  * By your use of Paradyn, you understand and agree that we (or any
25  * other person or entity with proprietary rights in Paradyn) are
26  * under no obligation to provide either maintenance services,
27  * update services, notices of latent defects, or correction of
28  * defects for Paradyn.
29  * 
30  * Even if advised of the possibility of such damages, under no
31  * circumstances shall we (or any other person or entity with
32  * proprietary rights in the software licensed hereunder) be liable
33  * to you or any third party for direct, indirect, or consequential
34  * damages of any character regardless of type of action, including,
35  * without limitation, loss of profits, loss of use, loss of good
36  * will, or computer failure or malfunction.  You agree to indemnify
37  * us (and any other person or entity with proprietary rights in the
38  * software licensed hereunder) for any and all liability it may
39  * incur to third parties resulting from your use of Paradyn.
40  */
41
42 //
43 // igen and MDL templates
44 //
45
46
47 #include "util/h/String.h"
48
49 #pragma implementation "Vector.h"
50 #include "util/h/Vector.h"
51
52 #pragma implementation "Dictionary.h"
53 #include "util/h/Dictionary.h"
54 #pragma implementation "dyninstRPC.xdr.h"
55 #include "dyninstRPC.xdr.h"
56 #pragma implementation "visi.xdr.h"
57 #include "visi.xdr.h"
58
59 /* ***********************************
60  * met stuff
61  */
62 #include "paradyn/src/met/metParse.h" 
63 #include "paradyn/src/met/mdl.h" 
64
65 class stringList;
66 class daemonMet;
67 class processMet;
68 class visiMet;
69 class tunableMet;
70
71 template class vector<functionName*>;
72 template class vector<processMet *>;
73 template class vector<daemonMet*>;
74 template class vector<visiMet*>;
75 template class vector<tunableMet*>;
76 template class vector<string_list*>;
77 template class vector<function_base*>;
78 template class vector<module*>;
79 template class vector<instPoint*>;
80
81 // Igen - dyninstRPC stuff
82
83 template class vector<T_dyninstRPC::mdl_rand *>;
84 template class vector<T_dyninstRPC::mdl_instr_rand *>;
85 template class vector<T_dyninstRPC::buf_struct*>;
86 template class vector<string>;
87 template class vector<T_dyninstRPC::mdl_expr*>;
88 template class vector<T_dyninstRPC::mdl_stmt*>;
89 template class vector<T_dyninstRPC::mdl_icode*>;
90 template class vector<T_dyninstRPC::mdl_constraint*>;
91 template class vector<T_dyninstRPC::metricInfo>;
92 template class vector<T_dyninstRPC::focusStruct>;
93 template class vector<T_dyninstRPC::mdl_metric*>;
94 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<string>*, 
95         bool_t (*)(XDR*, string*), string*);
96 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
97         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
98 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*, 
99         bool_t (*)(XDR*, u_int*), u_int*);
100 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<int>*, 
101         bool_t (*)(XDR*, int*), int*);
102 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
103         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), T_dyninstRPC::mdl_stmt**);
104 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
105         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), T_dyninstRPC::mdl_icode**);
106 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, 
107         vector<T_dyninstRPC::mdl_constraint*>*, 
108         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
109         T_dyninstRPC::mdl_constraint**);
110 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::metricInfo>*,
111         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), T_dyninstRPC::metricInfo*);
112
113 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::focusStruct>*,
114         bool_t (*)(XDR*, T_dyninstRPC::focusStruct*), T_dyninstRPC::focusStruct*);
115
116 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
117         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
118         T_dyninstRPC::mdl_metric**);
119 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<string>**, 
120         bool_t (*)(XDR*, string*), string*);
121 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
122         vector<T_dyninstRPC::mdl_expr*>**, 
123         bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**), T_dyninstRPC::mdl_expr**);
124 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
125         vector<u_int>**, bool_t (*)(XDR*, u_int*), u_int*);
126 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
127         vector<int>**, bool_t (*)(XDR*, int*), int*);
128 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
129         vector<T_dyninstRPC::mdl_stmt*>**, 
130         bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**), 
131         T_dyninstRPC::mdl_stmt**);
132 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
133         vector<T_dyninstRPC::mdl_icode*>**, 
134         bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**), 
135         T_dyninstRPC::mdl_icode**);
136 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
137         vector<T_dyninstRPC::mdl_constraint*>**, 
138         bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**), 
139         T_dyninstRPC::mdl_constraint**);
140 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
141         vector<T_dyninstRPC::metricInfo>**, 
142         bool_t (*)(XDR*, T_dyninstRPC::metricInfo*), 
143         T_dyninstRPC::metricInfo*);
144
145 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
146         vector<T_dyninstRPC::focusStruct>**, 
147         bool_t (*)(XDR*, T_dyninstRPC::focusStruct*), 
148         T_dyninstRPC::focusStruct*);
149
150 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, 
151         vector<T_dyninstRPC::mdl_metric*>**, 
152         bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**), 
153         T_dyninstRPC::mdl_metric**);
154
155
156 // MDL stuff 
157
158 template class vector<process *>;
159 template class vector<dataReqNode *>;
160 template class vector<mdl_var>;
161 template class vector<mdl_focus_element>;
162 template class vector<mdl_type_desc>;
163 template class pair< unsigned, vector<mdl_type_desc> >;
164 template class vector< pair< unsigned, vector<mdl_type_desc> > >;
165 template class dictionary<unsigned, vector<mdl_type_desc> >;
166 template class dictionary_hash<unsigned, vector<mdl_type_desc> >;
167 template class vector< vector< mdl_type_desc > >;
168 template class vector< dictionary_hash< unsigned, vector<mdl_type_desc> > :: hash_pair >;
169 template class vector< vector< dictionary_hash<unsigned, vector<mdl_type_desc> > :: hash_pair > >;
170
171 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<u_int>*,
172                                bool_t (*)(XDR*, u_int*), u_int*);
173
174 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<int>*,
175                                bool_t (*)(XDR*, int*), int*);
176
177 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_expr*>*,
178                                bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
179                                        T_dyninstRPC::mdl_expr**);
180 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_stmt*>*,
181                                bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
182                                        T_dyninstRPC::mdl_stmt**);
183 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_icode*>*,
184                                bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
185                                T_dyninstRPC::mdl_icode**);
186 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_constraint*>*,
187                                bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
188                                T_dyninstRPC::mdl_constraint**);
189 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_metric*>*,
190                                bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
191                                T_dyninstRPC::mdl_metric**);
192 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_rand*>*,
193                                bool_t (*)(XDR*, T_dyninstRPC::mdl_rand**),
194                                T_dyninstRPC::mdl_rand**);
195 template bool_t T_dyninstRPC_P_xdr_stl(XDR*, vector<T_dyninstRPC::mdl_instr_rand*>*,
196                                bool_t (*)(XDR*, T_dyninstRPC::mdl_instr_rand**),
197                                T_dyninstRPC::mdl_instr_rand**);
198
199
200 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_expr*>**,
201                            bool_t (*)(XDR*, T_dyninstRPC::mdl_expr**),
202                            T_dyninstRPC::mdl_expr**);
203 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_stmt*>**,
204                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_stmt**),
205                                    T_dyninstRPC::mdl_stmt**);
206 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_icode*>**,
207                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_icode**),
208                                    T_dyninstRPC::mdl_icode**);
209 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_constraint*>**,
210                            bool_t (*)(XDR*, T_dyninstRPC::mdl_constraint**),
211                            T_dyninstRPC::mdl_constraint**);
212 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_metric*>**,
213                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_metric**),
214                                    T_dyninstRPC::mdl_metric**);
215 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_rand*>**,
216                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_rand**),
217                                    T_dyninstRPC::mdl_rand**);
218 template bool_t T_dyninstRPC_P_xdr_stl_PTR(XDR*, vector<T_dyninstRPC::mdl_instr_rand*>**,
219                                    bool_t (*)(XDR*, T_dyninstRPC::mdl_instr_rand**),
220                                    T_dyninstRPC::mdl_instr_rand**);
221
222
223 // Igen - visi stuff
224
225 template class vector<T_visi::buf_struct*>;
226 template class vector<T_visi::dataValue>;
227 template class vector<T_visi::visi_matrix>;
228 template class vector<T_visi::phase_info>;
229 template class vector<float>;
230 template bool_t T_visi_P_xdr_stl(XDR*, vector<string>*, 
231         bool_t (*)(XDR*, string*), string*);
232 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::dataValue>*, 
233         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
234 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::visi_matrix>*,
235         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
236 template bool_t T_visi_P_xdr_stl(XDR*, vector<T_visi::phase_info>*, 
237         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
238 template bool_t T_visi_P_xdr_stl(XDR*, vector<float>*, 
239         bool_t (*)(XDR*, float*), float*);
240 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<string>**, 
241         bool_t (*)(XDR*, string*), string*);
242 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::dataValue>**, 
243         bool_t (*)(XDR*, T_visi::dataValue*), T_visi::dataValue*);
244 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::visi_matrix>**,
245         bool_t (*)(XDR*, T_visi::visi_matrix*), T_visi::visi_matrix*);
246 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<T_visi::phase_info>**, 
247         bool_t (*)(XDR*, T_visi::phase_info*), T_visi::phase_info*);
248 template bool_t T_visi_P_xdr_stl_PTR(XDR*, vector<float>**, 
249         bool_t (*)(XDR*, float*), float*);
250