cloud-control-panel/channel.go

70 lines
1.4 KiB
Go

package main
import "fmt"
import "log"
import "net"
import "os"
import "io"
import "bytes"
import "github.com/golang/protobuf/proto"
import pb "git.wit.com/jcarr/witProtobuf"
var mychannel chan *pb.Event
func initChannel() {
mychannel = make(chan *pb.Event)
}
// func processEvents(mychannel chan *pb.Event) {
func processEvents() {
for {
message := <-mychannel
log.Println("processEvents() on channel recieved a message")
ReadReceivedData(message)
}
}
func ReadReceivedData(data *pb.Event) {
msgItems := data.GetResults()
fmt.Println("Receiving data...")
for _, item := range msgItems {
fmt.Println(item)
}
}
func handleProtoClient(conn net.Conn) {
fmt.Println("Connected!")
defer conn.Close()
var buf bytes.Buffer
_, err := io.Copy(&buf, conn)
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
return
}
pdata := new(pb.Event)
err = proto.Unmarshal(buf.Bytes(), pdata)
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
return
}
mychannel <- pdata
}
func addEvent() {
msg := new(pb.Event)
msg.Name = "hello jeff"
// var mybuf bytes.Buffer
data, err := proto.Marshal(msg)
if (err != nil) {
log.Printf("something fucked up happened")
}
pdata := new(pb.Event)
// err = proto.Unmarshal(data.Bytes(), pdata)
err = proto.Unmarshal(data, pdata)
mychannel <- pdata
// sendDataToDest(data)
}