horizontal & vertical grid lines no longer expand past the
[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.13  1995/11/17 17:27:56  newhall
20 /* added normalized member to Metric class which specifies units type
21 /* added MetricLabel, MetricAveLabel, and MetricSumLabel DG method functions
22 /*
23 # Revision 1.12  1995/08/01  01:58:45  newhall
24 # changes relating to phase interface stuff
25 #
26 # Revision 1.11  1995/06/02  21:01:55  newhall
27 # changed type of metric and focus handles to u_int
28 #
29 # Revision 1.10  1995/02/26  01:59:28  newhall
30 # added phase interface functions
31 #
32 # Revision 1.9  1995/02/16  09:32:03  markc
33 # Modified to support machines which do not have NaN(x).
34 # This code has not been tested, but it compiles.
35 #
36 # Revision 1.8  1994/09/25  01:58:13  newhall
37 # changed interface definitions to work for new version of igen
38 # changed AddMetricsResources def. to take array of metric/focus pairs
39 #
40 # Revision 1.7  1994/09/22  03:12:24  markc
41 # declared arrays at start
42 # incremented version number
43 #
44 # Revision 1.6  1994/08/17  18:21:09  markc
45 # Incremented the version number because a new version of igen is in place.
46 #
47 # Revision 1.5  1994/08/03  20:47:28  newhall
48 # removed interface routines Enabled and NewMetricsResources
49 #
50 # Revision 1.4  1994/07/30  03:26:18  newhall
51 # added visi interface routines Enabled and BulkDataTransfer
52 #
53 # Revision 1.3  1994/05/11  17:11:07  newhall
54 # changed data values from double to float
55 #
56 # Revision 1.2  1994/04/13  21:23:09  newhall
57 # *** empty log message ***
58 #
59 # Revision 1.1  1994/03/29  02:42:13  newhall
60 # exported services of the visualization process
61 #
62 # Revision 1.3  1994/03/17  05:20:35  newhall
63 # changed bucket width and time value's type to double
64 #
65 # Revision 1.2  1994/03/14  20:28:52  newhall
66 # changed visi subdirectory structure
67 #  */ 
68
69
70 $remote struct metricType {
71      string units;    // how units are measured  i.e. "ms" 
72      string name;     // for y-axis labeling  
73      u_int  Id;       // unique metric Id
74      int    aggregate;  //either SUM or AVE
75      bool   normalized;  // specifies units type
76 };
77
78 $remote struct resourceType {
79      string name;     // obj. name for graph labeling
80      u_int  Id;       // unique resource id
81 };
82
83 $remote struct dataValue {
84   u_int metricId;
85   u_int resourceId;
86   int   bucketNum;
87   float data;
88 };
89
90 $remote struct visi_matrix {
91     resourceType res;
92     metricType   met;
93 };
94
95 $remote struct phase_info{
96   double start;
97   double end;
98   double  bucketWidth;
99   u_int handle;
100   string name;
101 };
102
103 $remote visualization {
104   $base  7000;
105   $version  13;
106
107   // data: list of new data values from Paradyn 
108   $async void Data(vector<dataValue> data);  
109
110   // a fold event from paradyn
111   $async void Fold(double newBucketWidth);
112
113   //
114   // A metric/focus pair has become invalid (from Paradyn)
115   // m: metricId of invalid metric-focus combination
116   // r: resourceId of invalid metric-focus combination
117   //
118   $async void InvalidMR(u_int m,u_int r);
119
120   //
121   // A new set of metrics and resources from Paradyn
122   // newElements: a list of new metric-focus matrices
123   // bucketWidth: current bucket width for histograms
124   // nobuckets:   max number of buckets for histograms
125   $async void AddMetricsResources(vector<visi_matrix> newElements,
126                                   double bucketWidth,
127                                   int nobuckets,
128                                   double start_time,
129                                   int phase_handle);
130   //
131   // A new phase has been defined by paradyn
132   //
133   $async void PhaseStart(double begin,  // phase start time
134                     double end,         // -1 means phase has not ended yet
135                     double bucketWidth,  // for histogram data values
136                     string name,        // string name for phase 
137                     u_int handle);      // unique phase id 
138
139   //
140   // A phase specified by "handle" has ended
141   // currently this is just used to fill in the end value in the phase table
142   //
143   $async void PhaseEnd(double end,
144                        u_int handle);
145
146
147   //
148   // A list of phase data from paradyn (response to GetPhaseInfo upcall) 
149   //
150   $async void PhaseData(vector<phase_info> phases);
151
152
153   //
154   // An array of data values from Paradyn starting with bucket #0
155   //
156   $async void BulkDataTransfer(vector<float> values, // array of data values 
157                                u_int metricId,    // id of met. assoc. w/data
158                                u_int resourceId);   // id of res. assoc. w/data
159
160
161   //
162   //  request from the visi to Paradyn for list of phases currently defined
163   //  in system
164   //
165   $upcall $async void GetPhaseInfo();
166
167   //
168   // A request from the visualization to Paradyn for new data
169   //
170   $upcall $async void GetMetricResource(string mets_res,
171                                         int numElements,
172                                         int type);
173   //
174   // A request to Paradyn to stop data associated with metricId & resourceId
175   //
176   $upcall $async void StopMetricResource(u_int metricId,
177                                          u_int resourceId);
178
179   // request a new phase start from paradyn 
180   // begin: phase start time (default of -1 means now)
181   // name:  phase name (default of NULL means let paradyn provide name)
182   $upcall $async void StartPhase(double begin, 
183                                 string name);
184 };