Kaynağa Gözat

gitea=>gogs

Sacha Ligthert 7 saat önce
ebeveyn
işleme
71b5f8c1d6
6 değiştirilmiş dosya ile 52 ekleme ve 11 silme
  1. 1 1
      server/Start.go
  2. 4 1
      server/addTask.go
  3. 20 0
      server/agentManager.go
  4. 9 9
      server/agents.html
  5. 1 0
      server/types.go
  6. 17 0
      server/writeMessage.go

+ 1 - 1
server/Start.go

@@ -12,7 +12,7 @@ func (server *Server) Start() {
 	log.Println("Started sudoku-funpark server")
 
 	// Run the agent manager
-	server.agentManager()
+	// go server.agentManager()
 
 	// Start the http server
 	http.HandleFunc("GET /json", server.jsonDumper)

+ 4 - 1
server/addTask.go

@@ -52,7 +52,10 @@ func (server *Server) addTask(w http.ResponseWriter, r *http.Request) {
 	puzzle[8] = r.PostForm["rows"][8]
 
 	// Create task and chuck it in the server struct
-	task := Task{Puzzle: puzzle}
+	task := Task{
+		Puzzle: puzzle,
+		Status: 0,
+	}
 	server.Tasks = append(server.Tasks, &task)
 
 	// Calling it

+ 20 - 0
server/agentManager.go

@@ -3,13 +3,33 @@ package server
 import "time"
 
 func (server *Server) agentManager() {
+	// Declare variables
+
+	// Agents free to run solutions
+	var agents_free int
+	// Tasks up for grabs
+	var tasks_free int
+
 	// Start the great for-loop
 	for {
+		agents_free = 0
 		// Count the number of agents without a runnig task
+		for key := range server.Agents {
+			if server.Agents[key].TaskId == 0 {
+				agents_free += 1
+			}
+		}
 
 		// Check if there are any new Tasks up for grabs
+		for key := range server.Tasks {
+			if server.Tasks[key].Status == 0 {
+				tasks_free += 1
+			}
+		}
 
 		// See if the task can be divided by the number of agents
+		// if agents_free > len(row1s) {} <-- Where the fuck does row1s come from?
+		// For proof-of-conept I will just send it
 
 		// If so, split
 		// if not, split-1

+ 9 - 9
server/agents.html

@@ -62,15 +62,15 @@
     <hr/>
     <form action="http://localhost:8080/addTask" method="post">
         <table border="0">
-            <tr><td>Row1</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row2</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row3</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row4</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row5</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row6</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row7</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row8</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
-            <tr><td>Row9</td><td>:</td><td><input type="text" value="000000000" name="rows"></td></tr>
+            <tr><td>Row1</td><td>:</td><td><input type="text" value="769104802" name="rows"></td></tr>
+            <tr><td>Row2</td><td>:</td><td><input type="text" value="154800060" name="rows"></td></tr>
+            <tr><td>Row3</td><td>:</td><td><input type="text" value="832700154" name="rows"></td></tr>
+            <tr><td>Row4</td><td>:</td><td><input type="text" value="600900328" name="rows"></td></tr>
+            <tr><td>Row5</td><td>:</td><td><input type="text" value="045328670" name="rows"></td></tr>
+            <tr><td>Row6</td><td>:</td><td><input type="text" value="328670945" name="rows"></td></tr>
+            <tr><td>Row7</td><td>:</td><td><input type="text" value="597410280" name="rows"></td></tr>
+            <tr><td>Row8</td><td>:</td><td><input type="text" value="006283090" name="rows"></td></tr>
+            <tr><td>Row9</td><td>:</td><td><input type="text" value="200590006" name="rows"></td></tr>
             <tr><td colspan="3" align="right"><input type="submit"></td></tr>
             
         </table>

+ 1 - 0
server/types.go

@@ -18,6 +18,7 @@ type Agent struct {
 }
 
 type Task struct {
+	Status    int // 0: Available; 1: Busy; 2: (Un)solved;
 	Puzzle    [9]string
 	Solutions [][]string
 }

+ 17 - 0
server/writeMessage.go

@@ -0,0 +1,17 @@
+package server
+
+import (
+	"log"
+
+	"github.com/gorilla/websocket"
+)
+
+func (server *Server) writeMessage(agent Agent, message string) {
+	for {
+		err := agent.conn.WriteMessage(websocket.TextMessage, []byte(message))
+		if err != nil {
+			log.Println("Error writing message:", err)
+			break
+		}
+	}
+}