/* Copyright 2010 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_SLAVEFUNCS_H #define _DISTREN_SLAVEFUNCS_H #include "distrenjob.h" #include "common/remoteio.h" #include #include #include struct msg; int sendSignal(struct remoteio *rem, char signal); int sendExtSignal(struct remoteio *rem, char signal, char *data); xmlNodePtr xml_quickxpath(xmlXPathContextPtr xpathctxt, xmlChar *path); int software_updatecheck(); int delete_jobdata(int jobnum, char *datadir); size_t curl_writetodisk(void *ptr, size_t size, size_t nmemb, FILE *stream); CURLcode curlget(char *url, char *out); CURLcode curlpost(char *filename, char *url, int jobnum, int framenum, int slavekey); int ssh_keygen(); int register_user(char *username, char *email); int login_user(char *username); int conf_replace(char *conffile, char *wordtoreplace, char *replacewith); int exec_blender(char *input, char *output, int frame); void xmlinit(); void xmlcleanup(); int distren_mkdir_recurse(const char *dirname); int job_build_path(char *filename, unsigned int jobnum); int downloadTar(char *url, char *destinationPath); int uploadOutput(char *pathtoOutput, char *urltoOutput, int jobnum, int framenum, int slavekey); int unpackJob(char *outdir, char *pathtoTar); void prepareJobPaths(int jobnum, int framenum, char *outputExt, char *datadir, char **urltoTar,char **pathtoTar,char **pathtoTardir,char **pathtoJob, char **pathtoJobfile,char **urltoJobfile,char **urltoOutput,char **pathtoOutput, char **pathtoRenderOutput, char **pathtoOutdir); int checkUsername(char *username); void slaveTest(); /* Standard slave */ void finishframe(struct remoteio *rem, int jobnum, int framenum); void resetframe(struct remoteio *rem, int jobnum, int framenum); void startframe(struct remoteio *rem, int jobnum, int framenum); int greet_server(struct remoteio *rem); int getwork(struct remoteio *rem, int *jobnum, int *framenum); void setrenderpower(struct remoteio *rem, int renderpower); int getrenderpower(struct remoteio *rem); int checkslaveversion(struct remoteio *rem); /* Simple slave */ struct _web_memorystruct; void *_web_myrealloc(void *ptr, size_t size); size_t _web_writememorycallback(void *ptr, size_t size, size_t nmemb, void *data); struct _web_memorystruct _web_getrequest(char *url); void _web_finishframe(int slavekey, char *slavepass, int jobnum, int framenum); void _web_startframe(int slavekey, char *slavepass, int jobnum, int framenum); void _web_resetframe(int slavekey, char *slavepass, int jobnum, int framenum); int _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum); void _web_setrenderpower(int slavekey, char *slavepass, int renderpower); int slaveBenchmark(char *datadir, int *benchmarkTime, int *renderPower); #endif