modified command line args to psuedoparadyn
[dyninst.git] / visi / test / server1.C
1 /* $Log: server1.C,v $
2 /* Revision 1.5  1994/06/08 17:34:43  newhall
3 /* *** empty log message ***
4 /*
5  * Revision 1.4  1994/03/26  04:37:05  newhall
6  * change all floats to double
7  * */
8 #include "../h/visualization.h"
9
10 int dv(int dummy){
11
12 int i,j,k,noBins,noMetrics,noResources;
13 float value;
14
15   fprintf(stderr,"@@@@call back routine for DATAVALUES\n");
16   noMetrics = dataGrid.NumMetrics();
17   noResources = dataGrid.NumResources();
18   noBins = dataGrid.NumBins();
19   fprintf(stderr,"@@@@ ERRROR = %lf quiet_nan = %lf\n",ERROR,quiet_nan());
20   if(ERROR == quiet_nan()){
21   fprintf(stderr,"@@@@ ERRROR == quiet_nan \n");
22   }
23   for(i = 0; i < noMetrics; i++)
24     for(j = 0; j < noResources; j++){
25       for(k = 0; k < noBins; k++)
26        if((value = dataGrid[i][j][k]) != ERROR)
27          fprintf(stderr,"@@@@dataGrid[%d,%d,%d] = %lf\n",i,j,k,value);
28        else
29          fprintf(stderr,"@@@@dataGrid[%d,%d,%d] = NaN\n",i,j,k);
30
31       printf("\n");
32     }
33
34   return(OK);
35 }
36
37
38 int imr(int dummy){
39   fprintf(stderr,"@@@@call back routine for INVALIDMETRICSRESOURCES\n");
40   return(OK);
41 }
42
43 int amr(int dummy){
44   fprintf(stderr,"@@@@call back routine for ADDMETRICSRESOURCES\n");
45   return(OK);
46 }
47
48 int nmr(int dummy){
49   fprintf(stderr,"@@@@call back routine for NEWMETRICSRESOURCES\n");
50   fprintf(stderr,"@@@@before upcall: GetMetricResource\n");
51   GetMetsRes("metrics test string","r test string",0);
52   fprintf(stderr,"@@@@after upcall: GetMetricResource\n");
53   fprintf(stderr,"@@@@before upcall: StopMetricResource\n");
54   StopMetRes(3,2);
55   fprintf(stderr,"@@@@after upcall: StopMetricResource\n");
56   fprintf(stderr,"@@@@before upcall: PhaseName\n");
57   NamePhase(3.0,2.0,"phase test string");
58   fprintf(stderr,"@@@@after upcall: PhaseName\n");
59   return(OK);
60 }
61
62 int pn(int dummy){
63 int i,j,k,noBins,noMetrics,noResources;
64
65   fprintf(stderr,"@@@@call back routine for PHASENAME\n");
66
67   noMetrics = dataGrid.NumMetrics();
68   noResources = dataGrid.NumResources();
69   noBins = dataGrid.NumBins();
70
71   fprintf(stderr,"\n");
72   for(i = 0; i < noMetrics; i++){
73       fprintf(stderr,"@@@@metric %d: Id = %d, name = %s, units = %s\n",i,dataGrid.MetricId(i),dataGrid.MetricName(i),dataGrid.MetricUnits(i));
74    }
75
76    for(j = 0; j < noResources; j++)
77        fprintf(stderr,"@@@@resource %d: Id = %d, name = %s\n",j,dataGrid.ResourceId(j),dataGrid.ResourceName(j));
78
79   fprintf(stderr,"\n");
80   for(i = 0; i < noMetrics; i++)
81     for(j = 0; j < noResources; j++){
82       for(k = 0; k < noBins; k++)
83        fprintf(stderr,"@@@@dataGrid[%d,%d,%d] = %lf\n",i,j,k,dataGrid[i][j][k]);
84       printf("\n");
85     }
86     (char *)dataGrid[0][0].userdata =  strdup("blah");
87     fprintf(stderr,"(char *)dataGrid[0][0].userdata = %s\n",(char *)dataGrid[0][0].userdata);
88   return(OK);
89 }
90
91 int f(int dummy){
92   fprintf(stderr,"@@@@call back routine for FOLD\n");
93   return(OK);
94 }
95
96
97
98
99 main(int argc, char *argv[]){
100
101 int ok;
102  
103    // call VisiInit
104    if((ok = VisiInit()) != OK){
105      exit(-1);
106    }
107
108   // register event callbacks
109
110   ok = RegistrationCallback(DATAVALUES,dv);
111   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
112   ok = RegistrationCallback(INVALIDMETRICSRESOURCES,imr);
113   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
114   ok = RegistrationCallback(ADDMETRICSRESOURCES,amr);
115   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
116   ok = RegistrationCallback(NEWMETRICSRESOURCES,nmr);
117   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
118   ok = RegistrationCallback(PHASENAME,pn);
119   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
120   ok = RegistrationCallback(FOLD,f);
121   fprintf(stderr,"@@@@ok = %d after call to RegistrationCallback\n",ok);
122
123
124   // start visi: calls GetMetricResources() with initial metric/resource
125   // lists: this is not necessary, but for viisualizaitons that
126   // don't do upcalls its the only method of starting data collection
127   ok = StartVisi(argc,argv);
128   fprintf(stderr,"@@@@ok=%d after call to StartVisi()\n",ok);
129
130   // register fd and callback using appropreate X routine  
131   // then enter X main loop 
132
133
134  // pseudo X main loop
135   while(1){
136    ok = visi_callback(); 
137    if(ok < 0){
138     //client has exited, die
139     exit(-1);
140    }
141   }
142 }