Added my_pid member for client.
[dyninst.git] / paradyn / h / dyninstRPC.I
1 #define MetStyleEventCounter    0
2 #define MetStyleSampledFunction 1
3
4
5 /* descriptive information about a metric */
6 $remote typedef struct { 
7     String name;
8     int style;
9     String units;
10 } metricInfo;           
11
12 /*
13  * Create a paradynd process.
14  *
15  */
16 int createDaemon(String machine,
17                  String login,
18                  String name,
19                  int argc,
20                  char *argv[]);
21
22
23 $remote dynRPC {
24     $base 4000;
25     $version 8;
26
27     //
28     // Define a program to run. 
29     int addExecutable(int argc, $array String argv);
30
31     //
32     // Connect up with a running program (not possible on all platforms).
33     //
34     Boolean attachProgram(int pid);
35
36     //
37     // Start an application running (This starts the actual execution).
38     //
39     Boolean startProgram(int program);
40
41     //
42     //   Stop all processes associted with the application.
43     //
44     Boolean pauseProgram(int program);
45
46     //
47     // Continue a paused application.
48     //
49     void continueProgram(int program);
50
51
52     //
53     // Disconnect the tool from the process.
54     //    pause - leave the process in a stopped state.
55     //
56     //
57     Boolean detachProgram(int program, Boolean pause);
58
59     //
60     // Gets called when a new application is started that is not visible to
61     //   paradyn (e.g. pvm_spawn).
62     //
63     $upcall $async void newProgramCallbackFunc(int program);
64
65     //
66     // Handler that gets called when new sample data is delivered.
67     //
68     //   p - a program from addProgram
69     //   mi - a metricInstance returned by enableDataCollection
70     //   startTimeStamp - starting time of the interval covered by this sample.
71     //   endTimeStamp - ending time of the interval covered by this sample.
72     //   value - the value of this sample
73     //
74    $upcall $async void sampleDataCallbackFunc(int program, 
75                                    int mi,
76                                    double startTimeStamp, 
77                                    double endTimeStamp, 
78                                    double value);
79
80     //
81     // Handler that gets called when a new resource is defined.
82     //
83     // parent           - parent of new resource
84     // newResource              - new resource being created (full name)
85     // name                     - short name of the new resource
86     //
87     $upcall $async void resourceInfoCallback(int program, 
88                                               String parent, 
89                                               String newResource, 
90                                               String name);
91
92     //
93     // Upcall for a new metric being defined.
94     //
95     $upcall $async void newMetricCallback(metricInfo info); 
96
97     void setSampleRate(double sampleInterval);
98
99     //
100     // Routines to control data collection on a performanceStream.
101     //
102     // resourceList     - a list of resources
103     // metric   - what metric to collect data for
104     //
105     int enableDataCollection($array String resourceList, String metric);
106
107     //
108     // stop collecting data for the named mi.
109     //     mi           - a metricInstance returned by enableDataCollection.
110     //
111     void disableDataCollection(int mi);
112
113     //
114     // Return the expected cost of collecting performance data for a single
115     //    metric at a given focus.  The value returned is the fraction of
116     //    perturbation expected (i.e. 0.10 == 10% slow down expected).
117     //
118     double getPredictedDataCost($array String resourceList, String metric);
119
120     //
121     // Get the static configuration information.
122     //
123     $array metricInfo getAvailableMetrics();
124
125     //
126     // Create a new resource.
127     //
128     void addResource(String parent, String name);
129
130     //
131     // Debugger style calls.
132     //
133     //
134     String getStatus(int pid);
135     void coreProcess(int pid);
136
137     //
138     // For paradynd's that may get started, but not by paradyn
139     // This allows them to report system information
140     $virtual $upcall void reportSelf(String machine, String program, int pid);
141     $cmember int my_pid;
142 };