diff --git a/server/src/engine/engine.go b/server/src/engine/engine.go index 0a7a27f..3937561 100644 --- a/server/src/engine/engine.go +++ b/server/src/engine/engine.go @@ -9,6 +9,7 @@ import ( func NewEngine(id string) *Engine { engine := Engine{ + id: id, obs: observer.NewProperty(syncdata.SyncData{}), } return &engine @@ -18,12 +19,8 @@ func (engine *Engine) Run() { for { value := engine.obs.Value().(syncdata.SyncData) fmt.Printf("sleep: %d\n", value.VersionRef) - time.Sleep(1 * time.Second) + time.Sleep(2 * time.Second) value.VersionRef++ engine.obs.Update(value) } } - -func (engine *Engine) GetHttpHandler() HandleFunc { - return SyncFactory(engine.obs) -} diff --git a/server/src/engine/struct.go b/server/src/engine/struct.go index cfd2e82..6c6c67b 100644 --- a/server/src/engine/struct.go +++ b/server/src/engine/struct.go @@ -8,5 +8,6 @@ import ( type HandleFunc func(http.ResponseWriter, *http.Request) type Engine struct { + id string obs observer.Property } diff --git a/server/src/engine/sync.go b/server/src/engine/sync.go index 588097b..01eac4f 100644 --- a/server/src/engine/sync.go +++ b/server/src/engine/sync.go @@ -3,20 +3,19 @@ package engine import ( "encoding/json" "fmt" - "github.com/imkira/go-observer" "net/http" "sirlab.de/go/knyt/syncdata" "strconv" ) -func SyncFactory(obs observer.Property) HandleFunc { +func (eng *Engine) GetHttpHandler() HandleFunc { return func(w http.ResponseWriter, r *http.Request) { versionRef, err := strconv.Atoi(r.URL.Query().Get("v")) if err != nil { versionRef = -1 } - stream := obs.Observe() + stream := eng.obs.Observe() var value syncdata.SyncData for { value = stream.Value().(syncdata.SyncData)