*** empty log message ***
[dyninst.git] / paradyn / h / VM.I
1 /* $Id: VM.I,v 1.19 1998/04/01 01:27:58 wylie Exp $ */
2
3 #include "paradyn/src/DMthread/DMinclude.h"
4 #include "util/h/Vector.h"
5 #include "paradyn/src/VMthread/VMinclude.h"
6
7 typedef struct VM_activeVisiInfo {
8   int visiNum; // tid of active visi used to kill visi (VMDestroyVisi)
9   int visiTypeId;  
10   string name;
11 } VM_activeVisiInfo;
12
13 $remote VM{
14
15   $base 5000;
16   $version 14;
17
18   // returns a list of information about active visualizations
19   // the client is responsible for freeing the space associated with
20   // this list
21   vector<VM_activeVisiInfo> *VMActiveVisis(); 
22
23
24   // returns a list of information about available visualizations
25   // the client is responsible for freeing the space associated with
26   // this list
27   vector<VM_visiInfo> *VMAvailableVisis(); 
28   
29   //  name: string representation of visi (for UIM menuing)
30   //  args: command line arguments for the visualiztion, argv[0]
31   //        is the executable name
32   //  matrix: initial set of metrics and foci to start the visi with
33   int VMAddNewVisualization(const char *name,
34                             vector<string> *argv,       
35                             int forceProcessStart,
36                             int mi_limit,
37                             char *matrix,
38                             int numMatrices);
39
40
41   //  converts a string representation of a list of met/focus pairs  
42   //  to the internal list of metrespairs representation
43   //  returns metrespair_Array values of count = 0, and data = NULL on error
44   vector<metric_focus_pair> *VMStringToMetResPair(const char *metresString);
45
46
47   // remenuFlag: if set, remenuing request made by visithread when 
48   //             a set of metrics and resource choices can't be enabled
49   // forceProcessStart: if set, the visi process is started w/o menuing first
50   // visiTypeId: identifier indicating wch visi type to start
51   // matrix: list of initial set of metrics/foci to start visi with
52   int VMCreateVisi(int remenuFlag,  
53                    int forceProcessStart,
54                    int visiTypeId,
55                    phaseType phase_type,
56                    vector<metric_focus_pair> *matrix);
57   
58   // visiThreadId: thread identifier associated with the  visi to destroy 
59   // can be called by any thread in the paradyn process
60   $async void VMDestroyVisi(thread_t visiThreadId);
61
62   // visiThreadId: thread identifier of visithread that has died
63   // called by visithread when the visualization process exits
64   void VMVisiDied(thread_t visiThreadId);
65
66   $signore
67   
68   static int VM_sequential_init();
69   static int VM_post_thread_create_init();
70   static VM *vmp;
71   $signore
72 };
73