rename to quads

This commit is contained in:
Barak Michener 2014-08-04 00:44:25 -04:00
parent cedaac35d0
commit 81b3bf9881
4 changed files with 91 additions and 88 deletions

View file

@ -24,6 +24,8 @@ package graph
import ( import (
"errors" "errors"
"time" "time"
"github.com/google/cayley/quad"
) )
type Procedure byte type Procedure byte
@ -34,37 +36,37 @@ const (
Delete Delete
) )
type Transaction struct { type Delta struct {
ID int64 ID int64
Triple *Triple Quad *quad.Quad
Action Procedure Action Procedure
Timestamp time.Time Timestamp time.Time
} }
type TripleWriter interface { type QuadWriter interface {
// Add a triple to the store. // Add a triple to the store.
AddTriple(*Triple) error AddQuad(*quad.Quad) error
// Add a set of triples to the store, atomically if possible. // Add a set of triples to the store, atomically if possible.
AddTripleSet([]*Triple) error AddQuadSet([]*quad.Quad) error
// Removes a triple matching the given one from the database, // Removes a triple matching the given one from the database,
// if it exists. Does nothing otherwise. // if it exists. Does nothing otherwise.
RemoveTriple(*Triple) error RemoveQuad(*quad.Quad) error
} }
type NewTripleWriterFunc func(TripleStore, Options) (TripleWriter, error) type NewQuadWriterFunc func(TripleStore, Options) (QuadWriter, error)
var writerRegistry = make(map[string]NewTripleWriterFunc) var writerRegistry = make(map[string]NewQuadWriterFunc)
func RegisterWriter(name string, newFunc NewTripleWriterFunc) { func RegisterWriter(name string, newFunc NewQuadWriterFunc) {
if _, found := writerRegistry[name]; found { if _, found := writerRegistry[name]; found {
panic("already registered TripleWriter " + name) panic("already registered TripleWriter " + name)
} }
writerRegistry[name] = newFunc writerRegistry[name] = newFunc
} }
func NewTripleWriter(name string, ts TripleStore, opts Options) (TripleWriter, error) { func NewQuadWriter(name string, ts TripleStore, opts Options) (QuadWriter, error) {
newFunc, hasNew := writerRegistry[name] newFunc, hasNew := writerRegistry[name]
if !hasNew { if !hasNew {
return nil, errors.New("replication: name '" + name + "' is not registered") return nil, errors.New("replication: name '" + name + "' is not registered")

View file

@ -41,7 +41,7 @@ type Value interface{}
type TripleStore interface { type TripleStore interface {
// The only way in is through building a transaction, which // The only way in is through building a transaction, which
// is done by a replication strategy. // is done by a replication strategy.
ApplyTransactions([]*Transaction) error ApplyDeltas([]*Delta) error
// Given an opaque token, returns the triple for that token from the store. // Given an opaque token, returns the triple for that token from the store.
Quad(Value) *quad.Quad Quad(Value) *quad.Quad

View file

@ -19,6 +19,7 @@ import (
"time" "time"
"github.com/google/cayley/graph" "github.com/google/cayley/graph"
"github.com/google/cayley/quad"
) )
type Single struct { type Single struct {
@ -27,7 +28,7 @@ type Single struct {
mut sync.Mutex mut sync.Mutex
} }
func NewSingleReplication(ts graph.TripleStore, opts graph.Options) (graph.TripleWriter, error) { func NewSingleReplication(ts graph.TripleStore, opts graph.Options) (graph.QuadWriter, error) {
rep := &Single{nextID: ts.Horizon(), ts: ts} rep := &Single{nextID: ts.Horizon(), ts: ts}
if rep.nextID == -1 { if rep.nextID == -1 {
rep.nextID = 1 rep.nextID = 1
@ -43,23 +44,23 @@ func (s *Single) AcquireNextId() int64 {
return id return id
} }
func (s *Single) AddTriple(t *graph.Triple) error { func (s *Single) AddQuad(t *quad.Quad) error {
trans := make([]*graph.Transaction, 1) trans := make([]*graph.Transaction, 1)
trans[0] = &graph.Transaction{ trans[0] = &graph.Transaction{
ID: s.AcquireNextId(), ID: s.AcquireNextId(),
Triple: t, Quad: t,
Action: graph.Add, Action: graph.Add,
Timestamp: time.Now(), Timestamp: time.Now(),
} }
return s.ts.ApplyTransactions(trans) return s.ts.ApplyTransactions(trans)
} }
func (s *Single) AddTripleSet(set []*graph.Triple) error { func (s *Single) AddQuadSet(set []*quad.Quad) error {
trans := make([]*graph.Transaction, len(set)) trans := make([]*graph.Transaction, len(set))
for i, t := range set { for i, t := range set {
trans[i] = &graph.Transaction{ trans[i] = &graph.Transaction{
ID: s.AcquireNextId(), ID: s.AcquireNextId(),
Triple: t, Quad: t,
Action: graph.Add, Action: graph.Add,
Timestamp: time.Now(), Timestamp: time.Now(),
} }
@ -68,7 +69,7 @@ func (s *Single) AddTripleSet(set []*graph.Triple) error {
return nil return nil
} }
func (s *Single) RemoveTriple(t *graph.Triple) error { func (s *Single) RemoveQuad(t *graph.Quad) error {
trans := make([]*graph.Transaction, 1) trans := make([]*graph.Transaction, 1)
trans[0] = &graph.Transaction{ trans[0] = &graph.Transaction{
ID: s.AcquireNextId(), ID: s.AcquireNextId(),