Ejemplo n.º 1
0
func genDataFromGenFile(ctx context.Context, genFile *bufio.Reader, evStore evstore.Connection) {
	chanInput := make(chan string, 1)
	for {
		s, _, err := genFile.ReadLine()
		if err == io.EOF {
			log.Println("EOF")
			break
		}
		if err != nil {
			log.Panicln(err)
		}
		go genData(ctx, string(s), chanInput)
	}
	log.Println("Waiting for Ctrl-C")
Loop:
	for {
		select {
		case <-ctx.Done():
			break Loop
		case msg := <-chanInput:
			log.Println(msg)
			evStore.Committer().SubmitEvent("", "scalar", msg)
		}
	}
}
Ejemplo n.º 2
0
func send2EventStore(r *bufio.Reader, evStore evstore.Connection) {
	for {
		s, _, err := r.ReadLine()
		if err == io.EOF {
			break
		}
		if err != nil {
			return
		}
		fmt.Println(string(s))
		err = evStore.Committer().SubmitEvent("", "scalar", string(s))
		if err != nil {
			log.Println(err)
		}
	}
	return
}
Ejemplo n.º 3
0
func handleClientRequest(ctx context.Context, c Connector, e evstore.Connection) {
	var ev map[string]interface{}
	fromWS, toWS, doneCh := c.GetChannels()
Loop:
	for {
		select {
		case <-ctx.Done():
		case <-doneCh:
			break Loop
		case msg := <-fromWS:
			response := wsock.MessageT{"reply": "ok"}
			seqid := ""
			if val, ok := (*msg)["sequenceid"].(string); ok {
				seqid = val
			}
			tag := ""
			if val, ok := (*msg)["tag"].(string); ok {
				tag = val
			} else {
				response["reply"] = "ERROR"
				response["msg"] = "No tag"
			}
			if val, ok := (*msg)["event"].(map[string]interface{}); ok {
				ev = val
			} else {
				response["reply"] = "ERROR"
				response["msg"] = "No event"
			}
			if response["reply"] == "ok" {
				err := e.Committer().SubmitMapStringEvent(seqid, tag, ev)
				if err != nil {
					response["reply"] = "ERROR"
					response["msg"] = "Submit to eventstore failed"
				}
			}
			toWS <- &response
			break
		case <-time.After(time.Millisecond * 10):
			break
		}
	}
}