Adding error message when shmat fails - naim
[dyninst.git] / paradyn / h / UI.I
1 /* UI.I
2      input file for igen for User Interface Manager (UIM) interface to paradyn
3 */
4 /* $Log: UI.I,v $
5 /* Revision 1.33  1997/06/02 19:38:16  karavan
6 /* added new call registerValidVisis.  This single call from Visi Manager to
7 /* UI thread at startup registers all valid visis as specified in a config
8 /* file, and replaces use of synchronous VM->VMAvailableVisis().
9 /*
10  * Revision 1.32  1997/05/02 04:42:28  karavan
11  * added functionality to save data and resource hierarchies to file.
12  *
13  * Revision 1.31  1996/10/31 08:10:37  tamches
14  * added enablePauseOrRun()
15  *
16  * Revision 1.30  1996/05/07 18:06:28  newhall
17  * added threadExiting, this routine must be synchrounous
18  *
19  * Revision 1.29  1996/05/01  20:57:20  tamches
20  * added DAGinactivateEntireSearch
21  *
22  * Revision 1.28  1996/05/01 14:03:48  naim
23  * Adding async. call to requestNodeInfoCallback to avoid deadlock between UI
24  * and PC - naim
25  *
26  * Revision 1.27  1996/04/19  18:26:37  naim
27  * Adding a procedure that will be called from the DM to add a new process,
28  * as it is done using the "paradyn process" command - naim
29  *
30  * Revision 1.26  1996/04/16  18:39:05  karavan
31  * changed updateStatusDisplay to take a string
32  *
33  */
34
35 #include "paradyn/src/DMthread/DMinclude.h"
36 #include "paradyn/src/UIthread/Status.h"
37 #include "performanceConsultant.thread.h"
38 #include "paradyn/src/VMthread/VMinclude.h"
39
40 /* 
41  * Handler that gets called when user-selected metric and focus choices
42  * are passed back to the requesting visualization thread
43  */
44
45 typedef int (*chooseMandRCBFunc) (vector<metric_focus_pair> *pairList);
46
47 /* 
48  * Handler that gets called when user choice passed back to requesting 
49  *  thread after message display
50  */
51 typedef int (*showMsgCBFunc) (int userChoice);
52
53 /* 
54  * Handler that gets called when user choice passed back to requesting 
55  *  thread after error message display
56  */
57 typedef int (*showErrorCBFunc) (int userChoice);
58
59 /*
60  * Handler that gets called when user choice passed back to requesting 
61  *  thread after menu display.  userChoice is index of selected menu 
62  *  item in original list.
63  */
64 typedef int (*chooseMenuItemCBFunc) (int userChoice);
65
66 //
67 // used in batched shg add requests
68 //
69 struct uiSHGrequest {
70   unsigned srcNodeID;
71   unsigned dstNodeID;
72   int styleID;
73   const char *label;
74 };
75
76 /*
77  * igen template for UIM server and client classes 
78  */ 
79
80 $remote UIM {
81         $base 3000;
82         $version 21;
83         //
84         // provides user with appropriate choices and passes back selections
85
86         $async void chooseMetricsandResources(chooseMandRCBFunc cb,
87                              vector<metric_focus_pair> *pairList);
88
89         $upcall $async void chosenMetricsandResources (chooseMandRCBFunc, 
90                               vector<metric_focus_pair> *pairList);
91
92         $async void registerValidVisis (vector<VM_visiInfo> *allVisis);
93
94         //
95         // called by an exiting thread to notify the UI that it is exiting
96         // this is so that the UI does not try to send a metrics menuing 
97         // response to a dead tid
98         //
99         void threadExiting();
100
101         // message display with "error" visual characteristics
102         //  and lookup in error database for explanation
103
104         $async void showError (int errCode, const char *errString);
105
106         // update status display
107
108         $async void updateStatus(status_line *status, const char *msg);
109
110         $async void enablePauseOrRun();
111
112         // used to tell UI to source a tcl file after initialization
113         // (but of course the -s option is for us developers only...)
114         $async void readStartupFile(const char *script);
115
116         // This procedure is used when paradyn create a process after 
117         // reading a configuration file (using option -f).
118         $async void ProcessCmd(string *arguments);
119
120         $async void allDataSaved(bool succeeded);
121         $async void resourcesSaved(bool succeeded);
122
123         // 
124         // SHG stuff
125         //
126
127         // add string to end of PC (scrolling) status display box
128         void updateStatusDisplay (int token, string *item);
129         // phaseID here is PC/UI version
130         $async void newPhaseNotification (unsigned phaseID, const char *phname, 
131                                           bool with_new_pc);
132         int DAGaddNode(int dagID, unsigned nodeID, int styleID, 
133                         const char *label, const char *shgname, int root);
134         int DAGaddEdge (int dagID, unsigned srcID, 
135                         unsigned dstID,
136                         int styleID, // why vs. where refinement
137                         const char *label // only used for shadow nodes; else NULL
138                         );
139         $async void DAGaddBatchOfEdges(int dagID, vector<uiSHGrequest> *requests,
140                                        unsigned numRequests);
141         int DAGconfigNode (int dagID, unsigned nodeID, int styleID);
142         $async void DAGinactivateEntireSearch(int dagID);
143         
144         $async void requestNodeInfoCallback(unsigned phaseID, int nodeID, 
145                                             shg_node_info *theInfo, bool ok);
146 };