/* Copyright 2009 Nathan Phillip Brink, Ethan Zonca, Matthew Orlando This file is a part of DistRen. DistRen is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. DistRen is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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 . */ #ifndef _DISTREN_BLENDJOB_H #define _DISTREN_BLENDJOB_H /** This file stores the blendjob and frameset structs and prototypes for some functions to manipulate/use these. */ #include /* clock_t */ typedef unsigned int jobnum_t; /** Stores Blender Job Info */ struct blendjob { struct blendjob *next; /*< next will be NULL unless if there is another blendjob */ char *name; char *submitter; char *email; jobnum_t jobnum; int priority; // 1 is lowest, 10 is highest, 0 means the job is done int 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) int avg_render_time; // average seconds it took to render a frame unsigned int time_remaining; // estimated seconds remaining till render is complete (up to 49, 710 days) // we can have the client computer convert it into days, hours, etc if they wish to view it 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 */ clock_t start_time; /*< time the frame was started */ int time_to_render; /*< the total seconds it took to render the frame */ }; /* Frameset array is generated by status_report_generator() */ #endif