# HG changeset patch # User normaldotcom # Date 2010-02-13 21:59:45 # Node ID 3de305a5a38f18fd206694ba16bb18a7a2980b6a # Parent a1fb4d1ec4fadfad4baeae19f710640535208dec Mysql updates, fix me please diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -196,7 +196,7 @@ int main(int argc, char *argv[]) /* If the client is idle, must be modified for climbing through linked list of clients (client->clientnum) */ if(clientstatus == CLIENTSTATUS_IDLE) { - int returnnum = find_jobframe(slaveKey, &job->jobnum, &frame->num); // Finds a frame to render @FIXME: Slavenum :D + int returnnum = find_jobframe(slaveKey, &job->jobnum, &frame->num, conn); // Finds a frame to render @FIXME: Slavenum :D if(returnnum) { fprintf(stderr,"No frames are available to render at this time. Idling...\n"); @@ -208,9 +208,9 @@ int main(int argc, char *argv[]) /* If the client states that they finished the frame */ if(clientsays == DISTREN_REQUEST_DONEFRAME){ clientstatus = CLIENTSTATUS_IDLE; // Sets the client back to idle - finish_frame(slaveKey, job->jobnum, frame->num); // @TODO: Make sure this actually works. + finish_frame(slaveKey, job->jobnum, frame->num, conn); // @TODO: Make sure this actually works. } - } /* while(!general_info.config->die) */ + } distrend_unlisten(general_info.config->listens, clients); distrend_config_free(general_info.config); diff --git a/src/server/mysql.c b/src/server/mysql.c --- a/src/server/mysql.c +++ b/src/server/mysql.c @@ -157,8 +157,14 @@ int mysqlResultFree(distrend_mysql_resul /** Finish-Setter: Sets a frame to the "completed" status.*/ // @QUERY: update `distren`.`Job` set `Finish_Confirmed`=1 where `Job_Key`='1' and `Frame` = somenumber; -void finish_frame(int slaveKey, int jobKey, int frameNum) +void finish_frame(int slaveKey, int jobKey, int frameNum, distrend_mysql_con_t conn) { + MYSQL_RES *result; + MYSQL_ROW row; + + char *query = "update `distren`.`Job` set `Finish_Confirmed`=1 where `Job_Key`='1' and `Frame` = somenumber;"; + result = mysqlQuery(conn, query); + // Check to make sure the slavekey is the one who rendered the frame before finishing :D /* distrenjob->frameset[frame].status = FRAMESETSTATUS_DONE; @@ -166,7 +172,6 @@ void finish_frame(int slaveKey, int jobK distrenjob->completed_frames ++; distrenjob->assigned_frames --; geninfo->total_frames_rendered ++; //< Increase total frames var for stats - update_general_info(geninfo); updateJobStatsXML(distrenjob); */ @@ -174,7 +179,7 @@ void finish_frame(int slaveKey, int jobK /** Changes the priority of an existing (and maybe running) job. @arg head I may end up changing the head if job == head */ // @QUERY: update `distren`.`Job` set `Priority`='12', `Finish_Confirmed`=1 where `Job_Key`='1'; -int change_job_priority(int jobKey, int newPriority){ +int change_job_priority(int jobKey, int newPriority, distrend_mysql_con_t conn){ /* struct distrenjob *current_job; struct distrenjob *prev_job; @@ -216,13 +221,10 @@ int change_job_priority(int jobKey, int } /** - Frame Finder: matches your computer up with a lovely frame to render, starts looking at oldest job first - @TODO: We must return both jobnum and framenum - @TODO: Add calls in main() - @return 0 success, other: error + Frame Finder: Finds a frame for a slave to render */ // @QUERY: Frame_Get() -int find_jobframe(int slaveKey, int *jobKey, int *frameNum) +int find_jobframe(int slaveKey, int *jobKey, int *frameNum, distrend_mysql_con_t conn) { /* if(geninfo->hibernate) diff --git a/src/server/mysql.h b/src/server/mysql.h --- a/src/server/mysql.h +++ b/src/server/mysql.h @@ -58,9 +58,9 @@ int mysqlResultFree(distrend_mysql_resul /** Import */ -void finish_frame(int slaveKey, int jobKey, int frameNum); -int change_job_priority(int jobKey, int newPriority); -int find_jobframe(int slaveKey, int *jobKey, int *frameNum); +void finish_frame(int slaveKey, int jobKey, int frameNum, distrend_mysql_con_t conn); +int change_job_priority(int jobKey, int newPriority, distrend_mysql_con_t conn); +int find_jobframe(int slaveKey, int *jobKey, int *frameNum, distrend_mysql_con_t conn);