#include "../src/visithread.h" #define TESTMETRIC "blah,blah blah,metric 3,metric 4,last metric" #define TESTRESOURCE "resource1/blah1/foo1,resource2/foo2,resource3" main(int argc,char *argv[]){ int i=0; int fd,pid; visualizationUser *vup; char **arg_list; char temp[128], temp2[128]; int wch; int done; metricType *metrics; metricType_Array mets; resourceType *resources; resourceType_Array res; dataValue *data; dataValue_Array blah; int mId,rId,bNum,bWidth,nval; float num,num2; int nMets,nRes; if(argc < 2){ fprintf(stdout,"incorrect num arguments: client1 server_executable\n"); exit(-1); } fprintf(stderr,"in client\n"); arg_list = new char*[argc+1]; arg_list[i++] = strdup(argv[1]); if(argc > 2){ sprintf(temp,"%s",TESTMETRIC); arg_list[i++] = strdup(temp); sprintf(temp,"%s",TESTRESOURCE); arg_list[i++] = strdup(temp); } arg_list[i++] = 0; fprintf(stderr,"in client before RPCprocessCreate\n"); fd = RPCprocessCreate(&pid, "localhost", "", argv[1],arg_list); if (fd < 0) { perror("process Create"); exit(-1); } fprintf(stderr,"in client before new visualizationUser\n"); vup = new visualizationUser(fd,NULL,NULL); fprintf(stderr,"in client before while loop\n"); done = 0; while(!done){ // check for upcall // these don't do anything yet if(RPC_readReady(fd)) vup->awaitResponce(-1); wch = -1; while((wch < 0) || (wch > 7)){ fprintf(stdout,"\n---------------------------------------------\n"); fprintf(stdout,"enter number of operation to perform:\n"); fprintf(stdout,"---------------------------------------------\n"); fprintf(stdout,"0:data values 1:fold 2:invalid m/r 3:add m/r\n"); fprintf(stdout,"4:new m/r 5:phase 6:print 7:quit\n"); fprintf(stdout,"---------------------------------------------\n\n"); scanf("%d",&wch); } switch(wch){ case 0: fprintf(stdout,"\nSend Data values to server process:\n"); fprintf(stdout,"enter number of dataValues\n"); scanf("%d",&nval); data = (dataValue *)malloc(sizeof(dataValue)*nval); for(i=0;iData(blah); free(data); break; case 1: fprintf(stdout,"\nFold:\n"); fprintf(stdout,"enter new bucket width value (float)\n"); scanf("%f",&num); vup->Fold(num); break; case 2: fprintf(stdout,"\nInvalidate Metric and Resources:\n"); fprintf(stdout,"enter metricId (int)\n"); scanf("%d",&mId); fprintf(stdout,"enter resourceId (int)\n"); scanf("%d",&rId); vup->InvalidMR(mId,rId); break; case 3: fprintf(stdout,"\nAdd Metrics and Resorces:\n"); fprintf(stdout,"enter number of metrics (int)\n"); scanf("%d",&nMets); metrics = (metricType *)malloc(sizeof(metricType)*nMets); for(i=0;iAddMetricsResources(mets,res,bWidth,bNum); for(i=0;iNewMetricsResources(mets,res); for(i=0;iPhase(num,num2,temp); break; case 6: vup->Phase(3.4,4.5,"blah"); break; case 7: done = 1; break; } } for(i=0;i