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