Files @ 27eb6c6418f6
Branch filter:

Location: DistRen/src/server/slavefuncs.h

binki
Handle resolving hostnames gracefully.
Fix support for hostname:port in remoteio.
Added timeout parameter to multiio_poll().
Fix stupid mistakes in distrenslave's read handler.
The server and client may not sit and play table tennis at last :-D.
/*
  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 <http://www.gnu.org/licenses/>.
*/

#ifndef _DISTREN_SLAVEFUNCS_H
#define _DISTREN_SLAVEFUNCS_H

#include "distrenjob.h"

#include "common/remoteio.h"

#include <curl/curl.h>
#include <libxml/xpath.h>
#include <stdio.h>


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(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