added 2 bool params to StartPhase
[dyninst.git] / visi / h / visi.I
1
2 /*
3  * Copyright (c) 1993, 1994 Barton P. Miller, Jeff Hollingsworth,
4  *     Bruce Irvin, Jon Cargille, Krishna Kunchithapadam, Karen
5  *     Karavanic, Tia Newhall, Mark Callaghan.  All rights reserved.
6  * 
7  * This software is furnished under the condition that it may not be
8  * provided or otherwise made available to, or used by, any other
9  * person, except as provided for by the terms of applicable license
10  * agreements.  No title to or ownership of the software is hereby
11  * transferred.  The name of the principals may not be used in any
12  * advertising or publicity related to this software without specific,
13  * written prior authorization.  Any use of this software must include
14  * the above copyright notice.
15  *
16  */
17
18 /* $Log: visi.I,v $
19 /* Revision 1.16  1996/02/23 17:46:10  tamches
20 /* added 2 bool params to StartPhase
21 /*
22  * Revision 1.15  1995/12/18 23:22:31  newhall
23  * changed metric units type so that it can have one of 3 values (normalized,
24  * unnormalized or sampled)
25  *
26  * Revision 1.14  1995/12/15 20:15:11  naim
27  * Adding call back function to display error messages from visis - naim
28  *
29 # Revision 1.13  1995/11/17  17:27:56  newhall
30 # added normalized member to Metric class which specifies units type
31 # added MetricLabel, MetricAveLabel, and MetricSumLabel DG method functions
32 #
33 # Revision 1.12  1995/08/01  01:58:45  newhall
34 # changes relating to phase interface stuff
35 #
36 # Revision 1.11  1995/06/02  21:01:55  newhall
37 # changed type of metric and focus handles to u_int
38 #
39 # Revision 1.10  1995/02/26  01:59:28  newhall
40 # added phase interface functions
41 #
42 # Revision 1.9  1995/02/16  09:32:03  markc
43 # Modified to support machines which do not have NaN(x).
44 # This code has not been tested, but it compiles.
45 #
46 # Revision 1.8  1994/09/25  01:58:13  newhall
47 # changed interface definitions to work for new version of igen
48 # changed AddMetricsResources def. to take array of metric/focus pairs
49 #
50 # Revision 1.7  1994/09/22  03:12:24  markc
51 # declared arrays at start
52 # incremented version number
53 #
54 # Revision 1.6  1994/08/17  18:21:09  markc
55 # Incremented the version number because a new version of igen is in place.
56 #
57 # Revision 1.5  1994/08/03  20:47:28  newhall
58 # removed interface routines Enabled and NewMetricsResources
59 #
60 # Revision 1.4  1994/07/30  03:26:18  newhall
61 # added visi interface routines Enabled and BulkDataTransfer
62 #
63 # Revision 1.3  1994/05/11  17:11:07  newhall
64 # changed data values from double to float
65 #
66 # Revision 1.2  1994/04/13  21:23:09  newhall
67 # *** empty log message ***
68 #
69 # Revision 1.1  1994/03/29  02:42:13  newhall
70 # exported services of the visualization process
71 #
72 # Revision 1.3  1994/03/17  05:20:35  newhall
73 # changed bucket width and time value's type to double
74 #
75 # Revision 1.2  1994/03/14  20:28:52  newhall
76 # changed visi subdirectory structure
77 #  */ 
78
79
80 $remote struct metricType {
81      string units;    // how units are measured  i.e. "ms" 
82      string name;     // for y-axis labeling  
83      u_int  Id;       // unique metric Id
84      int    aggregate;  //either SUM or AVE
85      int    unitstype;  // specifies units type 0: unnormalized 1: normalized
86                         //                      2: sampled
87 };
88
89 $remote struct resourceType {
90      string name;     // obj. name for graph labeling
91      u_int  Id;       // unique resource id
92 };
93
94 $remote struct dataValue {
95   u_int metricId;
96   u_int resourceId;
97   int   bucketNum;
98   float data;
99 };
100
101 $remote struct visi_matrix {
102     resourceType res;
103     metricType   met;
104 };
105
106 $remote struct phase_info{
107   double start;
108   double end;
109   double  bucketWidth;
110   u_int handle;
111   string name;
112 };
113
114 $remote visualization {
115   $base  7000;
116   $version  15;
117
118   // data: list of new data values from Paradyn 
119   $async void Data(vector<dataValue> data);  
120
121   // a fold event from paradyn
122   $async void Fold(double newBucketWidth);
123
124   //
125   // A metric/focus pair has become invalid (from Paradyn)
126   // m: metricId of invalid metric-focus combination
127   // r: resourceId of invalid metric-focus combination
128   //
129   $async void InvalidMR(u_int m,u_int r);
130
131   //
132   // A new set of metrics and resources from Paradyn
133   // newElements: a list of new metric-focus matrices
134   // bucketWidth: current bucket width for histograms
135   // nobuckets:   max number of buckets for histograms
136   $async void AddMetricsResources(vector<visi_matrix> newElements,
137                                   double bucketWidth,
138                                   int nobuckets,
139                                   double start_time,
140                                   int phase_handle);
141   //
142   // A new phase has been defined by paradyn
143   //
144   $async void PhaseStart(double begin,  // phase start time
145                     double end,         // -1 means phase has not ended yet
146                     double bucketWidth,  // for histogram data values
147                     string name,        // string name for phase 
148                     u_int handle);      // unique phase id 
149
150   //
151   // A phase specified by "handle" has ended
152   // currently this is just used to fill in the end value in the phase table
153   //
154   $async void PhaseEnd(double end,
155                        u_int handle);
156
157
158   //
159   // A list of phase data from paradyn (response to GetPhaseInfo upcall) 
160   //
161   $async void PhaseData(vector<phase_info> phases);
162
163
164   //
165   // An array of data values from Paradyn starting with bucket #0
166   //
167   $async void BulkDataTransfer(vector<float> values, // array of data values 
168                                u_int metricId,    // id of met. assoc. w/data
169                                u_int resourceId);   // id of res. assoc. w/data
170
171
172   //
173   //  request from the visi to Paradyn for list of phases currently defined
174   //  in system
175   //
176   $upcall $async void GetPhaseInfo();
177
178   //
179   // A request from the visualization to Paradyn for new data
180   //
181   $upcall $async void GetMetricResource(string mets_res,
182                                         int numElements,
183                                         int type);
184   //
185   // A request to Paradyn to stop data associated with metricId & resourceId
186   //
187   $upcall $async void StopMetricResource(u_int metricId,
188                                          u_int resourceId);
189
190   // request a new phase start from paradyn 
191   // begin: phase start time (default of -1 means now)
192   // name:  phase name (default of NULL means let paradyn provide name)
193   $upcall $async void StartPhase(double begin, string name,
194                                  bool withPerfConsult,
195                                  bool withVisis);
196
197   //
198   // call back to Paradyn to display error message
199   //
200   $upcall $async void showError(int code, string msg);
201 };