Changeset - f5a1573ebc08
[Not reviewed]
default
0 3 0
Nathan Brink (binki) - 16 years ago 2010-02-13 23:01:22
ohnobinki@ohnopublishing.net
fix up finish_frame() into mysql.c, reorganize mysql.? a bit
3 files changed with 75 insertions and 26 deletions:
0 comments (0 inline, 0 general)
src/server/distrend.c
Show inline comments
 
@@ -51,6 +51,7 @@
 
struct general_info
 
{
 
  struct distrenjob head;
 
  distrend_mysql_conn_t conn;
 

	
 
  struct distrend_config *config;
 

	
 
@@ -81,7 +82,7 @@ struct general_info
 
/* ************General Functions************* */
 
// int xml_dump();
 
int distrend_do();
 
// int start_data(struct general_info *general_info);
 
int start_data(struct general_info *general_info);
 
int mortition(struct general_info *geninfo, struct distrenjob *job);
 
// int restoreJobState(struct distrenjob *job);
 
// int prepare_distrenjob(struct general_info *geninfo, int type, char *name, char *submitter, int priority, int start_frame, int end_frame, int width, int height);
 
@@ -163,8 +164,7 @@ int main(int argc, char *argv[])
 
    */
 

	
 
  /** MySQL Connection */
 
  struct distrend_mysql_con *conn;
 
  if(mysqlConnect(&conn))
 
  if(mysqlConnect(&general_info.conn))
 
    {
 
      fprintf(stderr, "%s:%d: mysqlConnect() failed\n", __FILE__, __LINE__);
 
      return 1;
 
@@ -208,7 +208,7 @@ 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, conn); // @TODO: Make sure this actually works.
 
      	  finish_frame(general_info.conn, job->jobnum, frame->num); // @TODO: Make sure this actually works.
 
      	}
 
    }
 

	
 
@@ -219,7 +219,7 @@ int main(int argc, char *argv[])
 

	
 
  /** free() paths */
 
  free(general_info.files.geninfo);
 
  mysqlDisconnect(conn);
 
  mysqlDisconnect(general_info.conn);
 

	
 
  return 0;
 
}
 
@@ -292,7 +292,6 @@ int start_data(struct general_info *gene
 
}
 
*/
 

	
 

	
 
/**
 
   checks to see if a job is actually done.
 
   - scans the folder of the job to make sure all output files are present
src/server/mysql.c
Show inline comments
 
@@ -38,7 +38,24 @@
 
#define SEVENTY_FIVE 75
 
#define FORTY_TWO 42
 

	
 
struct distrend_mysql_con 
 
/**
 
   performs mysql query.
 
   errors will be logged to the user by this function.
 
   @return pointer to query handle on success, NULL on failure
 
 */
 
distrend_mysql_result_t mysqlQuery(distrend_mysql_conn_t conn, char *query);
 

	
 
/**
 
   frees mysql query result. Accepts a NULL pointer and ignores it to
 
   help deal with one-shot calls to mysqlQuery so that you don't have to
 
   check if it returned NULL or not.
 
   @return 0 on success
 
 */
 
int mysqlResultFree(distrend_mysql_result_t result);
 

	
 

	
 

	
 
struct distrend_mysql_conn
 
{
 
  MYSQL *mysqlconn;
 
  short pointlesscheck;
 
@@ -54,7 +71,7 @@ struct distrend_mysql_result
 
    funcs
 
 */
 

	
 
int mysqlConnect(struct distrend_mysql_con **conn)
 
int mysqlConnect(distrend_mysql_conn_t *conn)
 
{
 
  MYSQL *mysqlconn;
 

	
 
@@ -72,7 +89,7 @@ int mysqlConnect(struct distrend_mysql_c
 
      return 1;
 
    }
 

	
 
  *conn = malloc(sizeof(struct distrend_mysql_con));
 
  *conn = malloc(sizeof(struct distrend_mysql_conn));
 
  if(!*conn)
 
    {
 
      mysql_close(mysqlconn);
 
@@ -85,13 +102,13 @@ int mysqlConnect(struct distrend_mysql_c
 
  return 0;
 
}
 

	
 
int mysqlDisconnect(distrend_mysql_con_t conn)
 
int mysqlDisconnect(distrend_mysql_conn_t conn)
 
{
 
  /**
 
     check if this handle is valid
 
   */
 
  if(conn->pointlesscheck != SEVENTY_FIVE)
 
    fprintf(stderr, "warning, I was passed a bad struct distrend_mysql_con...\n");
 
    fprintf(stderr, "warning, I was passed a bad struct distrend_mysql_conn...\n");
 

	
 
  /**
 
     invalidate handle :-D
 
@@ -106,7 +123,7 @@ int mysqlDisconnect(distrend_mysql_con_t
 
}
 

	
 

	
 
distrend_mysql_result_t mysqlQuery(distrend_mysql_con_t conn, char *query)
 
distrend_mysql_result_t mysqlQuery(distrend_mysql_conn_t conn, char *query)
 
{
 
  MYSQL_RES *result;
 
  distrend_mysql_result_t distrenresult;
 
@@ -115,7 +132,7 @@ distrend_mysql_result_t mysqlQuery(distr
 
     pointless sanity check
 
  */
 
  if(conn->pointlesscheck != SEVENTY_FIVE)
 
    fprintf(stderr, "warning, I was passed a bad struct distrend_mysql_con...\n");
 
    fprintf(stderr, "warning, I was passed a bad struct distrend_mysql_conn...\n");
 
  
 
  /** make sure that connection is still alive
 
   */
 
@@ -142,6 +159,9 @@ distrend_mysql_result_t mysqlQuery(distr
 

	
 
int mysqlResultFree(distrend_mysql_result_t result)
 
{
 
  if(!result)
 
    return 0;
 

	
 
  if(result->pointlesscheck != FORTY_TWO)
 
    fprintf(stderr, "%s:%d: I didn't get the type of handle I wanted\n", __FILE__, __LINE__);
 

	
 
@@ -151,17 +171,30 @@ int mysqlResultFree(distrend_mysql_resul
 
  return 0;
 
}
 

	
 
<<<<<<< local
 

	
 

	
 
/*
 
   Individual query functions:
 
=======
 
/**
 
   Querying Functions
 
>>>>>>> other
 
 */
 

	
 
<<<<<<< local
 
=======
 
/** 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, distrend_mysql_con_t conn)
 
{
 
  MYSQL_RES *result;
 
  MYSQL_ROW row;
 
>>>>>>> other
 

	
 
<<<<<<< local
 
void finish_frame(distrend_mysql_conn_t conn, int32_t jobkey, int32_t framenum)
 
=======
 
  char *query = "update `distren`.`Job` set `Finish_Confirmed`=1 where `Job_Key`='1' and `Frame` = somenumber;";
 
  result = mysqlQuery(conn, query);
 

	
 
@@ -225,14 +258,35 @@ int change_job_priority(int jobKey, int 
 
*/
 
// @QUERY: Frame_Get()
 
int find_jobframe(int slaveKey, int *jobKey, int *frameNum, distrend_mysql_con_t conn)
 
>>>>>>> other
 
{
 
<<<<<<< local
 
  distrend_mysql_result_t result;
 
  char *query;
 
=======
 
  /*
 
  if(geninfo->hibernate)
 
    return 1;
 
>>>>>>> other
 

	
 
<<<<<<< local
 
  /**
 
    @TODO record the total rendering time for the frame
 
   */
 
=======
 
  unsigned int frame_counter;
 
  unsigned short int found;
 
>>>>>>> other
 

	
 
<<<<<<< local
 
  _distren_asprintf(&query, "UPDATE `distren`.`Job` SET `Finish_Confirmed`=1 WHERE `Job_Key`=%d AND `Frame`=%d",
 
		    jobkey, framenum);
 
  
 
  result = mysqlQuery(conn, query);
 
  free(query);
 
  
 
  mysqlResultFree(result);
 
=======
 
  struct distrenjob *distrenjob_ptr;
 

	
 
  found = 0;
 
@@ -270,4 +324,5 @@ int find_jobframe(int slaveKey, int *job
 
  *frame = &distrenjob_ptr->frameset[frame_counter];
 
*/
 
  return 0;
 
>>>>>>> other
 
}
src/server/mysql.h
Show inline comments
 
@@ -22,10 +22,12 @@
 
#ifndef MYSQL_H_
 
#define MYSQL_H_
 

	
 
struct distrend_mysql_con;
 
#include <stdint.h>
 

	
 
struct distrend_mysql_conn;
 
struct distrend_mysql_result;
 

	
 
typedef struct distrend_mysql_con *distrend_mysql_con_t;
 
typedef struct distrend_mysql_conn *distrend_mysql_conn_t;
 
typedef struct distrend_mysql_result *distrend_mysql_result_t;
 

	
 
/**
 
@@ -33,27 +35,20 @@ typedef struct distrend_mysql_result *di
 
   @param conn, pointer will be set to the struct
 
   @return 0 on success
 
 */
 
int mysqlConnect(distrend_mysql_con_t *conn);
 
int mysqlConnect(distrend_mysql_conn_t *conn);
 

	
 
/**
 
   cleans and disconnects MySQL connection
 
   @param conn connection to clean
 
   @return 0 on success
 
*/
 
int mysqlDisconnect(distrend_mysql_con_t conn);
 
int mysqlDisconnect(distrend_mysql_conn_t conn);
 

	
 
/**
 
   performs mysql query.
 
   errors will be logged to the user by this function.
 
   @return pointer to query handle on success, NULL on failure
 
   Mark a frame as finished in the database.
 
 */
 
distrend_mysql_result_t mysqlQuery(struct distrend_mysql_con *conn, char *query);
 
void finish_frame(distrend_mysql_conn_t conn, int32_t jobkey, int32_t framenum);
 

	
 
/**
 
   frees mysql query result.
 
   @return 0 on success
 
 */
 
int mysqlResultFree(distrend_mysql_result_t result);
 

	
 

	
 
/** Import */
0 comments (0 inline, 0 general)