diff options
Diffstat (limited to 'configfile/main.go')
| -rw-r--r-- | configfile/main.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/configfile/main.go b/configfile/main.go new file mode 100644 index 0000000..c012ba3 --- /dev/null +++ b/configfile/main.go @@ -0,0 +1,77 @@ +package main + +import "log" +import "bytes" +import "os" +import "bufio" +import "io/ioutil" + +import "github.com/golang/protobuf/proto" +import pb "git.wit.com/wit/virtbuf" + +// +// saves entries in a config file +// + +func main() { + TestWriteEvent() + + in, err := ioutil.ReadFile("/tmp/testing4.protobuf") + if err != nil { + log.Fatalln("Error reading file:", err) + } + allEvents := &pb.Event{} + if err := proto.Unmarshal(in, allEvents); err != nil { + log.Fatalln("Failed to parse events:", err) + } + + // listPeople(os.Stdout, allEvents) + // got := in.String() + log.Println(in) +} + +func marshalWriteToFile(myWriter *bufio.Writer, e *pb.Event) { + buf, err := proto.Marshal(e) + if err != nil { + log.Fatal("marshaling error: ", err) + } + tmp, err := myWriter.Write(buf) + myWriter.Flush() + log.Println("bufio.Write() tmp, err = ", tmp, err) + + buf, err = proto.Marshal(e) + tmp2, err := myWriter.Write(buf) + myWriter.Flush() + log.Println("bufio.Write() tmp2, err = ", tmp2, err) +} + +func TestWriteEvent() { + buf := new(bytes.Buffer) + + e := pb.CreateSampleEvent() + + got := buf.String() + log.Println(got) + + newfile, _ := os.Create("/tmp/testing4.protobuf") + myWriter := bufio.NewWriter(newfile) + marshalWriteToFile(myWriter, e) + + marshalUnmarshal() +} + +func marshalUnmarshal() { + test := pb.CreateSampleEvent() + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + + newTest := &pb.Event{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } else { + log.Println("proto.Marshal() and proto.Unmarshal() worked") + } +} |
