# HG changeset patch # User meillo@marmaro.de # Date 1210620260 -7200 # Node ID 831599184108ab3bf4c44f23dab8dad0ae794c28 inital commit can increment the time in the database diff -r 000000000000 -r 831599184108 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Mon May 12 21:24:20 2008 +0200 @@ -0,0 +1,10 @@ +syntax: glob +*~ +*.swp + +*.o +test +bin + +*.tar.gz +ChangeLog diff -r 000000000000 -r 831599184108 clock.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock.c Mon May 12 21:24:20 2008 +0200 @@ -0,0 +1,87 @@ +#include +#include +#include + +#include "db.h" + +char query[512]; + + +int check_game(char* gamename) { + int rows; + + sprintf(query, "select id from simulation where name = '%s' ", gamename); + db_query(query); + result = mysql_store_result(conn); + rows = mysql_num_rows(result); + mysql_free_result(result); + return rows; +} + + +void inc_time(char* gamename) { + int time = 0; + + /* get current time */ + sprintf(query, "select time from simulation where name = '%s' ", gamename); + db_query(query); + result = mysql_store_result(conn); + if (mysql_num_rows(result)) { + row = mysql_fetch_row(result); + time = atoi(row[0]); + } + mysql_free_result(result); + + + /* increment time */ + sprintf(query, " update simulation set time = '%d' where name = '%s' ", ++time, gamename); + db_query(query); + if (mysql_affected_rows(conn) > 0) { + printf("time update successful\n"); + printf("simulation time: %d\n", time); + } else { + printf("E: time update failed\n"); + } + +} + + +int main(int argc, char* argv[]) { + int i; + char* gamename; + + /* init */ + if (argc != 2) { + printf("usage: %s \n", argv[0]); + exit(1); + } + gamename = argv[1]; + + printf("gamename: %s\n", gamename); + + db_connect(); + + if (check_game(gamename) != 1) { + printf("game '%s' does not exist\n", gamename); + exit(1); + } + + inc_time(gamename); + +/* + while ((row = mysql_fetch_row(result)) != NULL) { + for (i = 0; i < mysql_num_fields(result); i++) { + printf("%10s ", row[i]); + } + printf("\n"); + } + */ + + + + + db_close(); + + printf("the garten program\n"); + return 0; +} diff -r 000000000000 -r 831599184108 db.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db.h Mon May 12 21:24:20 2008 +0200 @@ -0,0 +1,40 @@ +/* + * data for the database connection + */ + +char* server = "localhost"; +char* user = "garten"; +char* password = "gras"; +char* database = "garten"; + +MYSQL* conn; +MYSQL_RES* result; +MYSQL_ROW row; + + +void db_connect() { + conn = mysql_init(NULL); + + /* Connect to database */ + if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { + fprintf(stderr, "%s\n", mysql_error(conn)); + exit(1); + } +} + + +void db_close() { + /* close connection */ + mysql_close(conn); +} + + +void db_query(char* query) { + int error; + /* send SQL query */ + error = mysql_query(conn, query); + printf("query: %s\nerror: %d / %d\n", query, error, mysql_errno(conn)); + if (error != 0) { + fprintf(stderr, "E: %s\n", mysql_error(conn)); + } +} diff -r 000000000000 -r 831599184108 runtick.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtick.sh Mon May 12 21:24:20 2008 +0200 @@ -0,0 +1,23 @@ +#!/bin/sh +# +# runs one cycle +# + +if [ $# -ne 1 ] ; then + echo "usage: runtick.sh " + exit 1 +fi + +gamename="$1" + + +echo "started backend cycle at `date +%F\ %H:%M:%S`" + +./bin/clock $gamename +#./bin/weather $gamename +#./bin/environmant $gamename +#./bin/market $gamename +#./bin/growth $gamename +#./bin/orderexec $gamename + +echo "finished backend cycle at `date +%F\ %H:%M:%S`"