From 85a1bbdf0e4c601b7c1910be704ad6a1210a2378 Mon Sep 17 00:00:00 2001 From: David Schor Date: Mon, 10 Aug 2015 01:57:25 -0400 Subject: [PATCH] exporter initial skeleton --- exporter/exporter.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 exporter/exporter.go diff --git a/exporter/exporter.go b/exporter/exporter.go new file mode 100644 index 0000000..cd93c0c --- /dev/null +++ b/exporter/exporter.go @@ -0,0 +1,49 @@ +package exporter + +import ( + "io" + "encoding/json" + + "github.com/google/cayley/graph" +) + +type Exporter struct { + wr io.Writer + qstore graph.QuadStore + err error + count int32 +} + +func NewExporter(writer io.Writer, qstore graph.QuadStore) *Exporter { + return &Exporter{wr: writer, qstore: qstore} +} + +// number of records +func (exp *Exporter) Count() int32 { + return exp.count +} + +//print out the string quoted, escaped +func (exp *Exporter) WriteEscString(str string) { + var esc []byte + + if exp.err != nil { + return + } + esc, exp.err = json.Marshal(str) + if exp.err != nil { + return + } + _, exp.err = exp.wr.Write(esc) +} + +func (exp *Exporter) Write(str string) { + if exp.err != nil { + return + } + _, exp.err = exp.wr.Write([]byte(str)) +} + +func (exp *Exporter) Err() error { + return exp.err +}