func addEdgeToPosting(b *flatbuffers.Builder, t x.DirectedEdge, op byte) flatbuffers.UOffsetT { var bo flatbuffers.UOffsetT if t.Value != nil { if t.ValueId != math.MaxUint64 { glog.Fatal("This should have already been set by the caller.") } bytes, err := json.Marshal(t.Value) if err != nil { glog.WithError(err).Fatal("Unable to marshal value") return 0 } bo = b.CreateByteVector(bytes) } so := b.CreateString(t.Source) // Do this before posting start. types.PostingStart(b) if bo > 0 { types.PostingAddValue(b, bo) } types.PostingAddUid(b, t.ValueId) types.PostingAddSource(b, so) types.PostingAddTs(b, t.Timestamp.UnixNano()) types.PostingAddOp(b, op) return types.PostingEnd(b) }
func newPosting(t x.DirectedEdge, op byte) []byte { b := flatbuffers.NewBuilder(0) var bo flatbuffers.UOffsetT if t.Value != nil { if t.ValueId != math.MaxUint64 { glog.Fatal("This should have already been set by the caller.") } bytes, err := json.Marshal(t.Value) if err != nil { glog.WithError(err).Fatal("Unable to marshal value") return []byte{} } bo = b.CreateByteVector(bytes) } so := b.CreateString(t.Source) types.PostingStart(b) if bo > 0 { types.PostingAddValue(b, bo) } types.PostingAddUid(b, t.ValueId) types.PostingAddSource(b, so) types.PostingAddTs(b, t.Timestamp.UnixNano()) types.PostingAddOp(b, op) vend := types.PostingEnd(b) b.Finish(vend) return b.Bytes[b.Head():] }
func addPosting(b *flatbuffers.Builder, p types.Posting) flatbuffers.UOffsetT { so := b.CreateByteString(p.Source()) // Do this before posting start. var bo flatbuffers.UOffsetT if p.ValueLength() > 0 { bo = b.CreateByteVector(p.ValueBytes()) } types.PostingStart(b) types.PostingAddUid(b, p.Uid()) if bo > 0 { types.PostingAddValue(b, bo) } types.PostingAddSource(b, so) types.PostingAddTs(b, p.Ts()) types.PostingAddOp(b, p.Op()) return types.PostingEnd(b) }
// package level init func init() { { b := flatbuffers.NewBuilder(0) types.PostingListStart(b) of := types.PostingListEnd(b) b.Finish(of) empty = b.Bytes[b.Head():] } { b := flatbuffers.NewBuilder(0) types.PostingStart(b) types.PostingAddUid(b, 0) of := types.PostingEnd(b) b.Finish(of) emptyPosting = b.Bytes[b.Head():] } glog.Infof("Empty size: [%d] EmptyPosting size: [%d]", len(empty), len(emptyPosting)) }