int i,count;
t_job job;
+ t_client client;
char data;
char string[MAX_CONTENT];
return -1;
}
+ display_new_line(display,input,"jobs:");
network_receive_chan(net,0,(unsigned char *)&count,sizeof(int));
for(i=0;i<count;i++) {
network_receive_chan(net,0,(unsigned char *)&job,sizeof(t_job));
job.info.diff_rate,job.info.dr_ac,job.progress);
display_new_line(display,input,string);
}
+
+ display_new_line(display,input,"clients:");
+ network_receive_chan(net,0,(unsigned char *)&count,sizeof(int));
+ for(i=0;i<count;i++) {
+ network_receive_chan(net,0,(unsigned char *)&client,sizeof(t_client));
+ if(client.status&WORK) snprintf(string,MAX_CONTENT,
+ "channel %d: client is busy",
+ client.channel);
+ else snprintf(string,MAX_CONTENT,"channel %d: client is idle",
+ client.status);
+ display_new_line(display,input,string);
+ }
display_new_line(display,input,"done");
char command[MAX_CONTENT];
int x,y,z;
info info;
+ char *ptr;
/* default values */
x=_X;
info.dr_ac=DR_AC;
strncpy(command,input->content,MAX_CONTENT);
+ ptr=command;
- strtok(command," ");
- while(strtok(NULL," ")!=NULL) {
- switch(command[0]) {
+ ptr=strtok(command," ");
+ while((ptr=strtok(NULL," "))!=NULL) {
+ switch(ptr[0]) {
case 'b':
- info.b=atof(command+1);
+ info.b=atof(ptr+1);
break;
case 'c':
- info.c=atof(command+1);
+ info.c=atof(ptr+1);
break;
case 's':
- info.s=atof(command+1);
+ info.s=atof(ptr+1);
break;
case 'd':
- info.diff_rate=atoi(command+1);
+ info.diff_rate=atoi(ptr+1);
break;
case 'D':
- info.dr_ac=atof(command+1);
+ info.dr_ac=atof(ptr+1);
break;
case 'S':
- info.steps=atoi(command+1);
+ info.steps=atoi(ptr+1);
break;
case 'C':
- info.cpi=atoi(command+1);
+ info.cpi=atoi(ptr+1);
break;
case 'r':
- info.range=atoi(command+1);
+ info.range=atoi(ptr+1);
break;
case 'R':
- info.s_rate=atoi(command+1);
+ info.s_rate=atoi(ptr+1);
break;
case 'x':
- info.save_rate=atoi(command+1);
+ info.save_rate=atoi(ptr+1);
break;
case 'X':
- x=atoi(command+1);
+ x=atoi(ptr+1);
break;
case 'Y':
- y=atoi(command+1);
+ y=atoi(ptr+1);
break;
case 'Z':
- z=atoi(command+1);
+ z=atoi(ptr+1);
break;
default:
display_new_line(display,input,"unknown command");
+ dprintf(display->outfd,"unknown command %s\n",ptr);
break;
}
}
network_send_chan(net,0,(unsigned char *)&info,sizeof(info));
+ display_new_line(display,input,"added new job:");
+ snprintf(command,MAX_CONTENT,"b:%f | c:%f | s:%f | d: %d %f | %d",
+ info.b,info.c,info.s,info.diff_rate,info.dr_ac,info.steps);
+ display_new_line(display,input,command);
+
+
return 1;
}
return 1;
}
+int send_quit(t_net *net) {
+
+ unsigned char data;
+
+ data=GUI_QUIT;
+
+ network_send_chan(net,0,&data,1);
+
+ return 1;
+}
+
+int display_help(t_display *display,t_input *input) {
+
+ display_new_line(display,input,"h: show this help");
+ display_new_line(display,input,"i: get job/client info");
+ display_new_line(display,input,"a: add a job");
+ display_new_line(display,input," b: ballistic amorphization influence");
+ display_new_line(display,input," c: carbon induced amorphization influence");
+ display_new_line(display,input," s: stress induced amorphization influence");
+ display_new_line(display,input," d: diffusion interval");
+ display_new_line(display,input," D: diffusion rate");
+ display_new_line(display,input," S: simulation teps / dose");
+ display_new_line(display,input," C: collisions per ion");
+ display_new_line(display,input," r: stress influence range");
+ display_new_line(display,input," R: sputter rate");
+ display_new_line(display,input," x: save interval");
+ display_new_line(display,input," X: # cells in x direction");
+ display_new_line(display,input," Y: # cells in Y direction");
+ display_new_line(display,input," Z: # cells in Z direction");
+
+ return 1;
+}
+
int get_command(t_event *event,void *allineed) {
t_net *net;
/* if there was a new line! */
if(input->c_count==0) {
switch(input->content[0]) {
+ case GUI_HELP:
+ display_help(display,input);
+ break;
case GUI_INFO:
send_and_wait_for_answer(net,display,input);
break;
case GUI_QUIT:
/* stop everything */
event_math(0,event,READ,REMOVE);
+ send_quit(net);
network_shutdown(net);
- display_shutdown(display);
input_shutdown(input);
+ display_shutdown(display);
event_stop(event);
return 2;
default:
/* default values */
strcpy(logfile,LOGFILE);
- strcpy(server_ip,"");
+ strcpy(server_ip,"137.250.82.105");
port=1025;
/* parse/check argv */
/* wait for job */
event_start(&event,allyouneed,get_command,nothing);
- dprintf(fd,"hu?\n");
-
close(fd);
return 1;