Files @ d6e050f635ca
Branch filter:

Location: DistRen/src/server/distrend.c - annotation

ethanzonca@localhost.localdomain
Removed non-uploader stuff from client.c, added some master/slave blender code that needs to be fleshed out alot, along with some mysql stuff that should be moved to common eventually.
7f09dcee58f4
7f09dcee58f4
7f09dcee58f4
aaedffb71a83
aaedffb71a83
aaedffb71a83
7f09dcee58f4
7f09dcee58f4
7f09dcee58f4
aaedffb71a83
aaedffb71a83
7f09dcee58f4
7f09dcee58f4
7f09dcee58f4
aaedffb71a83
7f09dcee58f4
aaedffb71a83
2ccb6e87cf77
7f09dcee58f4
7f09dcee58f4
b31adf3243b9
7df3f36d8160
7df3f36d8160
3e1c191605ce
3e1c191605ce
3e1c191605ce
3e1c191605ce
3e1c191605ce
3e1c191605ce
3e1c191605ce
3e1c191605ce
fd1bd9e57cfa
fd1bd9e57cfa
fd1bd9e57cfa
fd1bd9e57cfa
df81403a665a
b31adf3243b9
b31adf3243b9
df81403a665a
fd1bd9e57cfa
fd1bd9e57cfa
fd1bd9e57cfa
fd1bd9e57cfa
df81403a665a
fd1bd9e57cfa
fd1bd9e57cfa
3e1c191605ce
3e1c191605ce
3e1c191605ce
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
7df3f36d8160
7f09dcee58f4
7f09dcee58f4
aad5053d6100
8af1e34f742f
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
f919148db633
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
f919148db633
b31adf3243b9
b31adf3243b9
b31adf3243b9
b31adf3243b9
8af1e34f742f
7f09dcee58f4
7f09dcee58f4
2ae4e48cbbf3
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
d6e050f635ca
/*
  Copyright 2008 Nathan Phillip Brink, Ethan Zonca

  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/>.

*/

#include <mysql.h>
#include <stdio.h>

/* Just some notes -- Ethan Zonca
 *
 * So I read the IRC transcript, and we need some communication and plugin (e.g., blender, povray) standards.
 * In addition to those standards, we should also have standards for information availability,
 * making statistics and remote control of each plugin or the whole system standard and common,
 * so other apps can grab stats from it (such as a j2me phone DistRen status app or a php web
 * interface).
 *
 *
 *
 * Notes from IRCness:
 * Server<==>Client Communication
 * Job initiation:  	<jobnumber> <jobtype={blender,povray,indigo,etc}> <filename> <args specific to the jobtype>
 * Job addition : 		<jobnumber> <alteration: could be (cancel):cancel job (frames):tell the client to render more 
frames>
 * Client Control: 		system <command> (such as drop all jobs, shutdown client, etc)
 *
 *  blender_getframecount()
 *  indigo_getframecount() always return 1... or just not bother with it?
 *
 *	Upload while rendering
 *
 *
 */


// mySql configuration vars
static char *opt_host_name = "localhost";  // Server Hostname
static char *opt_user_name = "distren";    // Username
static char *opt_password = "008987";      // Password
static unsigned int opt_port_num = 0;      // Port (or builtin if 0)
static char *opt_socket_name = NULL;       // Socket Name (or builtin if null)
static char *opt_db_name = "distrend";     // Database name
static unsigned int opt_flags = 0;         // Connection flags, what are these for?
static MYSQL *conn;                        // Pointer to the connection handler



int main(int argc, char *argv[])
{


// It's a happy fun mySQL party! This just test-connects to the server and does absolutely nothing else. Hopefully.

	/* initialize connection handler */
	conn = mysql_init (NULL);
	if (conn == NULL)
	{
	    fprintf (stderr, "mysql_init() failed (probably out of memory)\n");
	    return 1;
	}
	/* connect to server */
	if (mysql_real_connect (conn, opt_host_name, opt_user_name, opt_password,
	        opt_db_name, opt_port_num, opt_socket_name, opt_flags) == NULL)
	{
	    fprintf (stderr, "mysql_real_connect() failed\n");
	    mysql_close (conn);
	    return 1;
	}
	/* disconnect from server */
	mysql_close (conn);


  return 0;
}



/* Blender Rendering Code:

/////////////////////// MASTER ///////////////////////////////

// MySQL Setup Code (put in common maybe)
#include <mysql.h>
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
//
  char *server = "localhost";  // change if/when we do the multiserver setup... then distributed mysql with ssl? haha
  char *user = "mysql";
  char *password = "mysql";    // heh
  char *database = "distrend"; // check... I think this exists already on my server(s)
//
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); return (0); }




// Queuer
void queue(char *filename, int priority, char name, char submitter, char contact) {
 
// Todo... store frame status in mysql tables, along with table with list of jobs/submitters/contact info/whatever else we want

}



///////////////////////// SLAVE ///////////////////////////////


// Execution Function
void blendrend(char *input, char *output, int sframe, int eframe) {
  int ret;
  char *cmd[] = { "blender", "-b", "-o", output, input, "-s", sframe, "-e", eframe, (char *)0 };
  ret = execv ("/usr/bin/blender", cmd);
  // fprintf(stderr, "blender -b -o %s %s -s %d -e %d \n",output,input,sframe,eframe); 
}
blendrend(input,output,100, 206); // arbitrary example referencing the function





 */