removed matherr.h
[dyninst.git] / visi / h / visualization.h
1 #ifndef _visualization_h
2 #define _visualization_h
3 /*
4  * Copyright (c) 1993, 1994 Barton P. Miller, Jeff Hollingsworth,
5  *     Bruce Irvin, Jon Cargille, Krishna Kunchithapadam, Karen
6  *     Karavanic, Tia Newhall, Mark Callaghan.  All rights reserved.
7  * 
8  * This software is furnished under the condition that it may not be
9  * provided or otherwise made available to, or used by, any other
10  * person, except as provided for by the terms of applicable license
11  * agreements.  No title to or ownership of the software is hereby
12  * transferred.  The name of the principals may not be used in any
13  * advertising or publicity related to this software without specific,
14  * written prior authorization.  Any use of this software must include
15  * the above copyright notice.
16  *
17  */
18
19 /* $Log: visualization.h,v $
20 /* Revision 1.15  1995/12/20 20:19:31  newhall
21 /* removed matherr.h
22 /*
23  * Revision 1.14  1995/12/20 18:35:02  newhall
24  * including matherr.h so that it does not need to be included by visis
25  *
26  * Revision 1.13  1995/12/18 17:22:02  naim
27  * Adding function showErrorVisiCallback to display error messages from
28  * visis - naim
29  *
30  * Revision 1.12  1995/12/15  20:15:12  naim
31  * Adding call back function to display error messages from visis - naim
32  *
33  * Revision 1.11  1995/09/18  18:26:00  newhall
34  * updated test subdirectory, added visilib routine GetMetRes()
35  *
36  * Revision 1.10  1995/08/01  01:58:46  newhall
37  * changes relating to phase interface stuff
38  *
39  * Revision 1.9  1995/02/26  01:59:31  newhall
40  * added phase interface functions
41  *
42  * Revision 1.8  1994/10/13  15:38:52  newhall
43  * QuitVisi added
44  *
45  * Revision 1.7  1994/09/25  01:58:16  newhall
46  * changed interface definitions to work for new version of igen
47  * changed AddMetricsResources def. to take array of metric/focus pairs
48  *
49  * Revision 1.6  1994/08/13  20:34:07  newhall
50  * removed all code associated with class visi_MRList
51  *
52  * Revision 1.5  1994/05/23  20:55:21  newhall
53  * To visi_GridCellHisto class: added deleted flag, SumValue
54  * method function, and fixed AggregateValue method function
55  *
56  * Revision 1.4  1994/05/11  17:11:10  newhall
57  * changed data values from double to float
58  *
59  * Revision 1.3  1994/04/13  21:23:15  newhall
60  * added routines: GetMetsRes, StopMetRes, NamePhase
61  *
62  * Revision 1.2  1994/03/17  05:13:41  newhall
63  * change callback type
64  *
65  * Revision 1.1  1994/03/14  20:27:33  newhall
66  * changed visi subdirectory structure
67  *  */ 
68 /////////////////////////////////////////////////////////
69 //  This file should be included in all visualizations.
70 //  It contains definitions for all the Paradyn visi
71 //  interface routines.  
72 /////////////////////////////////////////////////////////
73
74 #include "datagrid.h"
75 #include "visiTypes.h"
76 #include "util/h/makenan.h"
77
78 #define FILETABLESIZE  64
79 #define EVENTSIZE      FOLD+1
80 #define MAXSTRINGSIZE  16*1024
81
82 //
83 // global variables assoc. with histo datagrid
84 //   dataGrid: use visi_DataGrid method functions to access current
85 //             data values and information about metrics and resources 
86 //   metricList, resourceList: use visi_MRList method functions to 
87 //             access current metric and resource lists (changes to this
88 //             list do not affect the datagrid) primarly, these are used
89 //             to obtain and modify the parameters to GetMetsRes()
90 //   
91 extern visi_DataGrid  dataGrid;   
92 extern int            lastBucketSent;
93
94 //
95 // file descriptor array: 1st file desc. is assoc. w/ Paradyn
96 // remaining file descriptors are assigned by user when user
97 // uses main routine provided by Paradyn
98 //
99 extern int fileDesc[FILETABLESIZE];
100
101 //
102 // array of callback routines assoc. with file descriptors when
103 // user uses main routine provided by Paradyn
104 //
105 extern int (*fileDescCallbacks[FILETABLESIZE])();
106
107 //
108 // array of procedure pointers for callback routines assoc.
109 // with paradyn events  (ex. DATAVALUES,INVALIDMETRICSRESOURCES...)
110 // events types are defined in visiTypes.h
111 //
112 extern int (*eventCallbacks[EVENTSIZE])(int);
113
114 //
115 // callback associated with paradyn-visualization interface routines
116 //
117 extern int visi_callback();
118
119 /////////////////////////////////////////////////////////////
120 // these functions invoke upcalls to a visi interface client
121 // (call from visualization process to paradyn)
122 /////////////////////////////////////////////////////////////
123 //
124 // get a new set of metrics and resources from Paradyn
125 //
126 extern void GetMetsRes(char *metres,  // predefined list met-res pairs 
127                        int numElements,  
128                        int type);      // 0-histogram, 1-scalar
129
130 //
131 // equivalent to a call to GetMetRes(0,0,0)
132 //
133 extern void GetMetsRes();
134
135 //
136 // stop data collection for a metric/resource pair
137 // arguments are the datagrid indicies associated with the
138 // metric and resource to stop
139 //
140 extern void StopMetRes(int metricIndex,    // datagrid index of metric
141                        int resourceIndex); // datagrid index of resource
142
143 //
144 // define a new phase to paradyn, can specify some time in the future
145 // for the phase to begin or a begin value of -1 means now
146 //
147 extern void DefinePhase(timeType begin,  // in seconds 
148                         char *name);     // name of phase 
149
150 ////////////////////////////////////////////////////////////////
151 //   initialization routines 
152 ////////////////////////////////////////////////////////////////
153 //
154 // connects to parent socket and registers the mainLoop routine
155 // as a callback on events on fileDesc[0]
156 // This routine should be called before entering the visualization's
157 // main loop, and before calling any other visi-interface routines
158 //
159 extern int  VisiInit();
160 extern int  initDone;
161
162
163 //
164 //  Makes initial call to get Metrics and Resources.
165 //  For visualizations that do not provide an event that
166 //  invokes the GetMetsRes upcall this routine should be
167 //  called by the visualization before entrering the mainloop.
168 //  (this will be the only chance to get metrics and resources
169 //  for the visualization).
170 //  For other visualizaitons, calling this routine before
171 //  entering the mainloop is optional. 
172 //
173 extern int  StartVisi(int argc,char *argv[]);
174
175 //
176 // cleans up visi interface data structs
177 // Visualizations should call this routine before exiting 
178 extern void QuitVisi();
179
180
181 //
182 // registration callback routine for paradyn events
183 // sets eventCallbacks[event] to callback routine provided by user
184 //
185 extern int RegistrationCallback(msgTag event,int (*callBack)(int));
186
187 //
188 // request to Paradyn to display error message
189 //
190 extern void showErrorVisiCallback(string msg);
191
192 //
193 // main loop provided by paradyn (not currently supported)
194 //
195 extern void ParadynMain();
196
197 //
198 // fd registration and callback routine registration for user
199 // to register callback routines when they use the provided main routine
200 //
201 extern int RegFileDescriptors(int *fd, int (*callBack)()); 
202
203 #endif