/* 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 . */ /* * ********************************************************************************** * Slave functions / etc resides below. Wouldn't a seperate file make this easier?? * * Slave listens on server for a command in the format of each function... * We need if's for returns... ==> watchdog * ********************************************************************************** */ int main(int argc, char *arvg[]) { ///////////////////// Semi-pseudo Slave Code /////////////////////////// int slavestatus = 0; if('no username in config file, no key present'){ fprintf(stderr "run distrend -c username] [emailaddr] to register") } if('they use a -c flag according to getopt, with 2 args'){ register_user(username, email); // which returns a uniquely random url to a key get(uniquely-random-url-to-key); fprintf(stderr, "you registered, hopefully successfully. Invoke distrend with no args now."); } if('username is in conf file and key is present'){ loginuser(username); } if('slave recieves "start frame#, job#"'){ get('http://distren.protofusion.org/srv/job#.tgz'); exec('tar -xvf job#.tgz /tmp/distren/job#'); // somehow exec_blender(job#.blend, job#.frame#.JPG, job#); // (check the args, we'll need to adjust for different output formats)... set SLAVESTATUS=1 while rendering, SLAVESTATUS=2 when done } if(SLAVESTATUS==2){ tell_the_server("done with frame# in job#"); SLAVESTATUS=0; } if(SLAVESTATUS==0){ tell_the_server("i ain't got no frames to render"); } while(SLAVESTATUS==1){ tell_the_server("rendering this friggn frame"); delay(1000); // or not } return 0; }