diff --git a/src/server/Makefile.am b/src/server/Makefile.am --- a/src/server/Makefile.am +++ b/src/server/Makefile.am @@ -1,8 +1,10 @@ +COMMON_SOURCES = slavefuncs.c slavefuncs.h blendjob.h + bin_PROGRAMS = distrend distrenslave -distrend_SOURCES = distrend.c slavefuncs.c slavefuncs.h +distrend_SOURCES = distrend.c ${COMMON_SOURCES} distrend_LDADD = @DISTLIBS_LIBS@ @top_builddir@/src/common/libdistrencommon.la distrend_CFLAGS = @DISTLIBS_CFLAGS@ -I@top_srcdir@/src/common -distrenslave_SOURCES = slave.c slavefuncs.c slavefuncs.h +distrenslave_SOURCES = slave.c ${COMMON_SOURCES} distrenslave_LDADD = @DISTLIBS_LIBS@ @top_builddir@/src/common/libdistrencommon.la distrenslave_CFLAGS = @DISTLIBS_CFLAGS@ -I@top_srcdir@/src/common diff --git a/src/server/blendjob.h b/src/server/blendjob.h new file mode 100644 --- /dev/null +++ b/src/server/blendjob.h @@ -0,0 +1,66 @@ +/* + 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 diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -52,6 +52,8 @@ #include "execio.h" #include "options.h" +#include "blendjob.h" + #include #include #include @@ -62,7 +64,6 @@ -typedef unsigned int jobnum_t; /* ******************* Structs ************************ */ @@ -96,34 +97,6 @@ struct general_info { unsigned int total_frames_rendered; // } general_info; -// 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 function - // Using this method to save memory, because if animation starts on a high frame number, it would waste a lot of RAM on empty structures /* diff --git a/src/server/slavefuncs.h b/src/server/slavefuncs.h --- a/src/server/slavefuncs.h +++ b/src/server/slavefuncs.h @@ -19,6 +19,7 @@ #ifndef _DISTREN_SLAVEFUNCS_H #define _DISTREN_SLAVEFUNCS_H +#include "blendjob.h" void registeruser(char *username, char *email); void loginuser(char *username);