changed web interface to static files + json interface
authorPaul J R <me@pjr.cc>
Mon, 16 Nov 2009 02:30:44 +0000 (13:30 +1100)
committerPaul J R <me@pjr.cc>
Mon, 16 Nov 2009 02:30:44 +0000 (13:30 +1100)
src/dbconnector.go
src/dbibridge.go
src/web/index.html [new file with mode: 0644]
src/webconnector.go

index 637aa84..0123d4d 100644 (file)
@@ -3,6 +3,7 @@ package dbconnector
 
 import (
        "./dbibridge";
+       //"strings";
        "time";
        "rand";
        "fmt";
@@ -15,22 +16,22 @@ type DBConnector struct {
 
 func CreateRandomText(len int) (str string)
 {
-       buf := make([]byte, len+2);
+       buf := make([]byte, len);
 
        rand.Seed(time.Nanoseconds());
        
        for i:=0; i<len; i++ {
-               switch(rand.Int()%3) {
+               switch(rand.Int()%2) {
                 case 0:
-                    buf[i] = uint8(rand.Int()%26+65);
+                    buf[i] = uint8(rand.Int()%22+66);
                 case 1:
-                    buf[i] = uint8(rand.Int()%26+97);
+                    buf[i] = uint8(rand.Int()%22+98);
                 case 2:
-                    buf[i] = uint8(rand.Int()%10+48);
+                    buf[i] = uint8(rand.Int()%9+48);
+               }
+               //buf[i+1] = 0; // this bit pisses off the c.cstring conversion somehow
         }
-        buf[i+1] = 0;
-               
-       }
+       
        
        return string(buf);
 }
@@ -46,6 +47,9 @@ func DBSetup(dbtype string, host string, username string, password string, datab
        dbibridge.DBIConnect(Dbconn, "mysql", host, username, password, database);
        
        if dbtype == "mysql" {
+               dbibridge.ExecSQL(Dbconn,"drop table WAREHOUSE");
+               dbibridge.ExecSQL(Dbconn,"drop table DISTRICT");
+               dbibridge.ExecSQL(Dbconn,"drop table ITEM");
                dbibridge.ExecSQL(Dbconn,"create table WAREHOUSE ( \
                W_ID integer NOT NULL, \
                W_NAME CHARACTER(10), \
@@ -79,9 +83,6 @@ func DBSetup(dbtype string, host string, username string, password string, datab
                I_PRICE integer, \
                I_DATA CHARACTER(50), \
                PRIMARY KEY(I_ID))");
-               whst := fmt.Sprintf("insert into WAREHOUSE values ( %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)", 10, CreateRandomText(9),
-                       CreateRandomText(19), CreateRandomText(19), CreateRandomText(19), CreateRandomText(2), CreateRandomText(8), rand.Int()%50, rand.Int()%100);
-          dbibridge.ExecSQL(Dbconn, whst);
        }
        
        
@@ -93,12 +94,12 @@ func DBSetup(dbtype string, host string, username string, password string, datab
                whst := fmt.Sprintf("insert into WAREHOUSE values ( %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)", i, CreateRandomText(9),
                        CreateRandomText(19), CreateRandomText(19), CreateRandomText(19), CreateRandomText(2), CreateRandomText(8), rand.Int()%50, rand.Int()%100);
                dbibridge.ExecSQL(Dbconn, whst); 
-               for j:=0; j < 1; j++ {
+               for j:=0; j < 20; j++ {
                        dtst := fmt.Sprintf("insert into DISTRICT values ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d)", j, i, 
                                CreateRandomText(9), CreateRandomText(19), CreateRandomText(19), CreateRandomText(19), CreateRandomText(2), CreateRandomText(8), rand.Int()%50, rand.Int()%100, j+1);
                        dbibridge.ExecSQL(Dbconn, dtst);
-                       for k:=0; k<1; k++ {
-                               itst := fmt.Sprintf("insert into ITEM values ( %d, %d, '%s', %d, '%s')", i*j*k, rand.Int()%50000, 
+                       for k:=0; k<50000; k++ {
+                               itst := fmt.Sprintf("insert into ITEM values ( %d, %d, '%s', %d, '%s')", (i+1)*(j+1)*(k+1), rand.Int()%50000, 
                                        CreateRandomText(23), rand.Int()%1000000, CreateRandomText(49));
                                dbibridge.ExecSQL(Dbconn, itst);
                        }
index fe26e60..48544ae 100644 (file)
@@ -6,7 +6,8 @@ import "C"
 
 import (
        "unsafe";
-       "fmt";
+       //"fmt";
+       //"strings";
 )
 
 type DBIConnection struct {
@@ -36,6 +37,7 @@ func DBIConnect(thisDBConn *DBIConnection, dbtype string, host string, username
        C.dbi_conn_set_option(thisDBConn.dbconn, C.CString("username"), C.CString(username));
        C.dbi_conn_set_option(thisDBConn.dbconn, C.CString("password"), C.CString(password));
        C.dbi_conn_set_option(thisDBConn.dbconn, C.CString("dbname"), C.CString(database));
+       C.dbi_conn_set_option(thisDBConn.dbconn, C.CString("encoding"), C.CString("UTF-8"));
        C.dbi_conn_connect(thisDBConn.dbconn);
        
        thisDBConn.dbinit = true;
@@ -43,7 +45,7 @@ func DBIConnect(thisDBConn *DBIConnection, dbtype string, host string, username
 
 func ExecSQL(thisDBConn *DBIConnection, SQL string)
 {
-       fmt.Printf("%s;\n", SQL);
+       //fmt.Printf("%s;\n", SQL);
        res := C.dbi_conn_query(thisDBConn.dbconn, C.CString(SQL));
        
        C.dbi_result_free((unsafe.Pointer)(res));
@@ -52,4 +54,4 @@ func ExecSQL(thisDBConn *DBIConnection, SQL string)
 func DBIDisconnect(thisDBConn *DBIConnection)
 {
        C.dbi_conn_close(thisDBConn.dbconn);
-}
\ No newline at end of file
+}
diff --git a/src/web/index.html b/src/web/index.html
new file mode 100644 (file)
index 0000000..b499243
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Insert title here</title>
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file
index e7436d3..fa814f3 100644 (file)
@@ -135,7 +135,8 @@ func main()
        bc := benchcontroller.CreateController();
        go benchcontroller.MainLoop(bc, comout, comin);
        
-       http.Handle("/", http.HandlerFunc(ServerResponder));
+       http.Handle("/", http.FileServer("./web", "/web"));
+       http.Handle("/json", http.HandlerFunc(ServerResponder));
        err := http.ListenAndServe(":22222", nil);
        if err != nil {
                panic("ListenAndServe: ", err.String())