Modified to support machines which do not have NaN(x).
[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.9  1995/02/16 09:32:03  markc
20 /* Modified to support machines which do not have NaN(x).
21 /* This code has not been tested, but it compiles.
22 /*
23 # Revision 1.8  1994/09/25  01:58:13  newhall
24 # changed interface definitions to work for new version of igen
25 # changed AddMetricsResources def. to take array of metric/focus pairs
26 #
27 # Revision 1.7  1994/09/22  03:12:24  markc
28 # declared arrays at start
29 # incremented version number
30 #
31 # Revision 1.6  1994/08/17  18:21:09  markc
32 # Incremented the version number because a new version of igen is in place.
33 #
34 # Revision 1.5  1994/08/03  20:47:28  newhall
35 # removed interface routines Enabled and NewMetricsResources
36 #
37 # Revision 1.4  1994/07/30  03:26:18  newhall
38 # added visi interface routines Enabled and BulkDataTransfer
39 #
40 # Revision 1.3  1994/05/11  17:11:07  newhall
41 # changed data values from double to float
42 #
43 # Revision 1.2  1994/04/13  21:23:09  newhall
44 # *** empty log message ***
45 #
46 # Revision 1.1  1994/03/29  02:42:13  newhall
47 # exported services of the visualization process
48 #
49 # Revision 1.3  1994/03/17  05:20:35  newhall
50 # changed bucket width and time value's type to double
51 #
52 # Revision 1.2  1994/03/14  20:28:52  newhall
53 # changed visi subdirectory structure
54 #  */ 
55
56
57 $remote struct metricType {
58      string units;    // how units are measured  i.e. "ms" 
59      string name;     // for y-axis labeling  
60      int     Id;       // unique metric Id
61      int     aggregate;  //either SUM or AVE
62 };
63
64 $remote struct resourceType {
65      string name;     // obj. name for graph labeling
66      int    Id;       // unique resource id
67 };
68
69 $remote struct dataValue {
70   int   metricId;
71   int   resourceId;
72   int   bucketNum;
73   float data;
74 };
75
76 $remote struct visi_matrix {
77     resourceType res;
78     metricType   met;
79 };
80
81
82 $remote visualization {
83   $base  7000;
84   $version  8;
85
86   // data: list of new data values from Paradyn 
87   $async void Data(vector<dataValue> data);  
88
89   $async void Fold(double newBucketWidth);
90
91   // m: metricId of invalid metric-focus combination
92   // r: resourceId of invalid metric-focus combination
93   $async void InvalidMR(int m,int r);
94
95   // newElements: a list of new metric-focus matrices
96   // bucketWidth: current bucket width for histograms
97   // nobuckets:   max number of buckets for histograms
98   $async void AddMetricsResources(vector<visi_matrix> newElements,
99                                   double bucketWidth,
100                                   int nobuckets);
101   // begin: phase start time
102   // end:   phase end time
103   // name:  phase name
104   $async void Phase(double begin,
105                     double end,
106                     string name);
107
108   // values: array of data values starting from 0th element
109   // metricId:   id of metric assoc. with data values
110   // resourceId: id of focus assoc. with data values
111   $async void BulkDataTransfer(vector<float> values,
112                                int metricId,
113                                int resourceId);
114
115
116   $upcall $async void GetMetricResource(string mets_res,
117                                         int numElements,
118                                         int type);
119
120   // metricId, resourceId: id's of metric-focus combination to stop
121   $upcall $async void StopMetricResource(int metricId,
122                                          int resourceId);
123
124   // begin: phase start time
125   // end:   phase end time
126   // name:  phase name
127   $upcall $async void PhaseName(double begin,
128                                 double end,
129                                 string name);
130 };