Changeset - 44885c088956
[Not reviewed]
default
0 3 0
ethanzonca@zserver2 - 15 years ago 2010-06-06 18:35:30

Pardon the failing (is the build already broken anyway?); Added to the socket protocol, added slave functions for socket calls, began thinking about backporting simpleslave changes to slave.
3 files changed with 79 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/common/protocol.h
Show inline comments
 
@@ -60,15 +60,26 @@ enum distren_request_type
 
    DISTREN_REQUEST_JOBINFO_RESPONSE = 7, /*< returns information about a job */
 

	
 
    /**
 
       server->server
 
    */
 
    DISTREN_REQUEST_RENDERFRAME = 8,
 
    DISTREN_REQUEST_DONEFRAME = 9,
 
    DISTREN_REQUEST_DONEFRAME = 9, /* server should check to make sure the
 
slave is repoting on a frame it's actually assigned to */
 
    DISTREN_REQUEST_PROGRESS = 10, /*< tells another server of the progress of the first server's work at rendering */
 
    DISTREN_REQUEST_GETWORK = 11,
 
    DISTREN_REQUEST_GETVERSION = 12, /* returns version of software that slave
 
should be running */
 
    DISTREN_REQUEST_GETRENDERPOWER = 13, /* returns the render power of a
 
slave */
 
    DISTREN_REQUEST_SETRENDERPOWER = 14, /* sets renderpower in server
 
database */
 
    DISTREN_REQUEST_RESETFRAME = 15, /* sets a frame back to unassigned,
 
happens if the slave quits for some reason. server code should only allow
 
resetting of a frame assigned to the slave calling the request (see php
 
code)*/ 
 

	
 
  };
 

	
 
struct distren_request
 
{
 
  uint32_t magic;
src/server/slavefuncs.c
Show inline comments
 
@@ -860,12 +860,69 @@ int slaveBenchmark(char *datadir, int *b
 
    remove(output);
 

	
 
  *benchmarkTime = abs(difftime(startTime,endTime));
 
  float tmp = *benchmarkTime;
 
  tmp = (1/tmp) * 50000;
 
  *renderPower = (int)tmp;
 
  free(realOutput);
 
  
 
free(realOutput);
 
  free(frame_str);
 
  free(input);
 
  free(output);
 
  return ret;
 
}
 

	
 
/* Port of web functions for standard code
 

	
 
   Currently, most functions are stubs due to lack
 
   of socket reading code */
 

	
 
void finishframe(struct remotio *rem, int jobnum, int framenum){
 
  char* data;
 
  _distren_asprintf(&data, "%d%d", jobnum, framenum);
 
  sendExtSignal(rem, DISTREN_REQUEST_DONEFRAME, data);
 
}
 

	
 
void resetframe(struct remotio *rem, int jobnum, int framenum){
 
  fprintf(stderr,"Resetting frame %d in job %d on server... ",framenum,jobnum);
 
  char* data;
 
  _distren_asprintf(&data, "%d%d", jobnum, framenum);
 
 sendExtSignal(rem, DISTREN_REQUEST_RESETFRAME, data);
 

	
 
}
 

	
 
void startframe(struct remotio *rem, int jobnum, int framenum){
 
  if(DEBUG)
 
    fprintf(stderr,"Marking frame %d started on server... ",framenum);
 
  char* data;
 
  _distren_asprintf(&data, "%d%d", jobnum, framenum);
 
  sendExtSignal(rem, DISTREN_REQUEST_RENDERFRAME, data);
 

	
 
}
 

	
 
int getwork(struct remotio *rem, int *jobnum, int *framenum){
 
  char* data;
 
  _distren_asprintf(&data, "%d%d", jobnum, framenum);
 
  sendExtSignal(rem, DISTREN_REQUEST_GETWORK, data)
 
}
 

	
 
void setrenderpower(struct remotio *rem, int renderpower){
 
  fprintf(stderr,"Setting render power on server... ");
 
  char* data;
 
  _distren_asprintf(&data, "%d", renderpower);
 
  sendExtSignal(rem, DISTREN_REQEST_SETRENDERPOWER, data);
 
}
 

	
 

	
 
int getrenderpower(struct remotio *rem){
 
  sendSignal(rem, DISTREN_REQUEST_GETRENDERPOWER);
 
  return 0;
 
}
 

	
 
int checkslaveversion(struct remotio *rem){
 
  sendSignal(rem, DISTREN_REQUEST_GETVERSION);
 
  int server_version = 9000;
 

	
 
  if(PACKAGE_VERSION != server_version)
 
    return 1;
 
  else
 
    return 0;
src/server/slavefuncs.h
Show inline comments
 
@@ -63,7 +63,16 @@ void _web_finishframe(int slavekey, char
 
void _web_startframe(int slavekey, char *slavepass, int jobnum, int framenum);
 
void _web_resetframe(int slavekey, char *slavepass, int jobnum, int framenum);
 
int _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum);
 
void _web_setrenderpower(int slavekey, char *slavepass, int renderpower);
 
int slaveBenchmark(char *datadir, int *benchmarkTime, int *renderPower);
 

	
 
/* Standard slave */
 
void finishframe(struct remotio *rem, int jobnum, int framenum);
 
void resetframe(struct remotio *rem, int jobnum, int framenum);
 
void startframe(struct remotio *rem, int jobnum, int framenum);
 
int getwork(struct remotio *rem, int *jobnum, int *framenum);
 
void setrenderpower(struct remotio *rem, int renderpower);
 
int getrenderpower(struct remotio *rem);
 
int checkslaveversion(struct remotio *rem);
 

	
 
#endif
0 comments (0 inline, 0 general)