Changeset - 6ca6d2672c6c
[Not reviewed]
default
0 2 0
Nathan Brink (binki) - 16 years ago 2009-09-03 23:32:42
ohnobinki@ohnopublishing.net
minor fixes, added output_format to distrenjob
2 files changed with 4 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/server/distrenjob.h
Show inline comments
 
@@ -36,24 +36,25 @@ struct distrenjob {
 
  struct distrenjob *next; /*< next will be NULL unless if there is another distrenjob */
 
  char *name;
 
  char *submitter;
 
  char *email; /*< This should be looked up based on the value of submitter, not stored in this struct */
 
  jobnum_t jobnum;
 
  int priority;  // 1 is lowest, 10 is highest, 0 means the job is done
 
  float percent_done;
 
  int completed_frames; // number of completed frames for stats/etc
 
  int assigned_frames; // number of assigned frames (that are not yet completed) for stats/etc
 
  int total_frames; // how many frames are in the animation for stats/etc (unassigned frames)
 
  time_t avg_render_time; // average seconds it took to render a frame
 
  time_t time_remaining; /*< estimated seconds remaining till render is complete (up to 49, 710 days) */
 
  char *output_format; /*< currently is the file extention of the request output format. @todo make this mime-type based/not a string */
 
  struct frameset *frameset;
 
};
 

	
 

	
 

	
 
/**
 
   Frameset Structure
 
*/
 
struct frameset {
 
  int num; /*< frame number to render */
 
  char slave_name; /*< user that frame is assigned to */
 
  int status; /*< status of frame, 0= unassigned, 1= taken, 2= done */
src/server/slave.c
Show inline comments
 
@@ -14,24 +14,25 @@
 
  GNU Affero General Public License for more details.
 

	
 
  You should have received a copy of the GNU Affero General Public License
 
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
 */
 

	
 
// Provides DISTREN_REQUEST* which is in reality, DISTREN_SEND(signal) in the minds of your average joe
 
#include "protocol.h"
 
#include "options.h" // Confuse, etc.
 
#include "slavefuncs.h" // Slave functions
 
#include "asprintf.h"
 
#include "remoteio.h"
 

	
 
#include <string.h>
 
#include <stdio.h>
 
#include <unistd.h>
 
#include <sys/stat.h> /*< mkdir() */
 
#include <stdlib.h>
 

	
 
int slavestatus = 0; // Ugh global vars
 

	
 
int main(int argc, char *argv[])
 
{
 

	
 
@@ -183,29 +184,29 @@ if(gotframe ==1)
 

	
 
    // Parses a job's XML file, puts data in the myjob struct
 
    if(xml2distrenjob(&myjob, pathtoXml) == 0){
 
      fprintf(stderr,"Well, the XML craziness may have worked. Maybe. \n");
 
      distrenjob_free(&myjob); // Frees things up if it was successful. xml2distrenjob() really (usually) only fails if malloc'ing inside it fails
 
    }
 
    else{
 
      fprintf(stderr,"I think the XML craziness may have failed, so I'll terminate just for fun.\n");
 
      return 1;
 
    }
 

	
 
    /* Variable-fillers which require XML */
 
    outputExt = myjob.outputFormat; /* @TODO: FIXME! */
 
    outputExt = myjob->output_format; /* @TODO: FIXME! */
 
    _distren_asprintf(&pathtoOutput, "%s/job%d/output/frame%d.%s", datadir, jobnum, framenum, outputExt ); // Prepares the path to the jobfile
 

	
 

	
 
     exec_blender(&myjob, pathtoJobfile, pathtoOutput, framenum); // @TODO: This warning should be fixed :D
 
     exec_blender(myjob, pathtoJobfile, pathtoOutput, framenum); // @TODO: This warning should be fixed :D
 

	
 
    // Consider placing the following in the exec_blender() function
 
    while(busy == 1){
 
      tell_the_server(DISTREN_REQUEST_PROGRESS);
 
        fprintf(stderr, "Rendering frame %d in job %d...",framenum,jobnum);
 
        sleep(5); // or not... this should be more event-driven, but should still give a heartbeat to the server
 
      }
 
    busy = 2;
 
    // busy = 1; // @TODO: When done rendering, set this.
 
     }
 
    // When blender is finished, run this...
 
      if(busy==2){
0 comments (0 inline, 0 general)