Merge "veyron/services/wsprd: Use the origin from the websocket to link the identity to the pipe."
diff --git a/services/store/memstore/blackbox/many_to_many/many_to_many_test.go b/services/store/memstore/blackbox/many_to_many/many_to_many_test.go
index 7b62ff4..a925681 100644
--- a/services/store/memstore/blackbox/many_to_many/many_to_many_test.go
+++ b/services/store/memstore/blackbox/many_to_many/many_to_many_test.go
@@ -6,7 +6,6 @@
 
 	"veyron/services/store/memstore"
 	"veyron/services/store/memstore/blackbox"
-	"veyron/services/store/service"
 
 	"veyron2/security"
 	"veyron2/storage"
@@ -89,7 +88,7 @@
 	return &Role{Position: pos, Player: playerID, Team: teamID}
 }
 
-func getPerson(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Person) {
+func getPerson(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Person) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
@@ -100,7 +99,7 @@
 	return e.Stat.ID, p
 }
 
-func getPlayer(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Player) {
+func getPlayer(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Player) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
@@ -111,7 +110,7 @@
 	return e.Stat.ID, p
 }
 
-func getTeam(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Team) {
+func getTeam(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Team) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
@@ -122,7 +121,7 @@
 	return e.Stat.ID, p
 }
 
-func getRole(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Role) {
+func getRole(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Role) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
@@ -221,7 +220,7 @@
 	return &DirectTeam{}
 }
 
-func getDirectPlayer(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *DirectPlayer) {
+func getDirectPlayer(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *DirectPlayer) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
@@ -232,7 +231,7 @@
 	return e.Stat.ID, p
 }
 
-func getDirectTeam(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *DirectTeam) {
+func getDirectTeam(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *DirectTeam) {
 	_, file, line, _ := runtime.Caller(1)
 	e := blackbox.Get(t, st, tr, path)
 	v := e.Value
diff --git a/services/store/memstore/blackbox/photoalbum_test.go b/services/store/memstore/blackbox/photoalbum_test.go
index ad9e487..b1deb61 100644
--- a/services/store/memstore/blackbox/photoalbum_test.go
+++ b/services/store/memstore/blackbox/photoalbum_test.go
@@ -5,7 +5,6 @@
 	"testing"
 
 	"veyron/services/store/memstore"
-	"veyron/services/store/service"
 
 	"veyron2/storage"
 	"veyron2/vom"
@@ -65,7 +64,7 @@
 	return &Photo{Content: content, Comment: comment}
 }
 
-func getPhoto(t *testing.T, st *memstore.Store, tr service.Transaction, path string) *Photo {
+func getPhoto(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) *Photo {
 	_, file, line, _ := runtime.Caller(1)
 	v := Get(t, st, tr, path).Value
 	p, ok := v.(*Photo)
diff --git a/services/store/memstore/blackbox/team_player_test.go b/services/store/memstore/blackbox/team_player_test.go
index 61a1255..a086129 100644
--- a/services/store/memstore/blackbox/team_player_test.go
+++ b/services/store/memstore/blackbox/team_player_test.go
@@ -6,7 +6,6 @@
 
 	"veyron/services/store/memstore"
 	"veyron/services/store/memstore/state"
-	"veyron/services/store/service"
 
 	"veyron2/storage"
 	"veyron2/vom"
@@ -41,7 +40,7 @@
 	return &Team{FullName: name}
 }
 
-func getPlayer(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Player) {
+func getPlayer(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Player) {
 	_, file, line, _ := runtime.Caller(1)
 	e := Get(t, st, tr, path)
 	p, ok := e.Value.(*Player)
@@ -51,7 +50,7 @@
 	return e.Stat.ID, p
 }
 
-func getTeam(t *testing.T, st *memstore.Store, tr service.Transaction, path string) (storage.ID, *Team) {
+func getTeam(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) (storage.ID, *Team) {
 	_, file, line, _ := runtime.Caller(1)
 	e := Get(t, st, tr, path)
 	p, ok := e.Value.(*Team)
diff --git a/services/store/memstore/blackbox/util.go b/services/store/memstore/blackbox/util.go
index c618fb8..5d99c44 100644
--- a/services/store/memstore/blackbox/util.go
+++ b/services/store/memstore/blackbox/util.go
@@ -10,7 +10,6 @@
 	"veyron/services/store/memstore"
 	memwatch "veyron/services/store/memstore/watch"
 	"veyron/services/store/raw"
-	"veyron/services/store/service"
 
 	"veyron2/ipc"
 	"veyron2/naming"
@@ -84,7 +83,7 @@
 	return nil
 }
 
-func Get(t *testing.T, st *memstore.Store, tr service.Transaction, path string) *storage.Entry {
+func Get(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) *storage.Entry {
 	_, file, line, _ := runtime.Caller(1)
 	e, err := st.Bind(path).Get(rootPublicID, tr)
 	if err != nil {
@@ -93,7 +92,7 @@
 	return e
 }
 
-func Put(t *testing.T, st *memstore.Store, tr service.Transaction, path string, v interface{}) storage.ID {
+func Put(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string, v interface{}) storage.ID {
 	_, file, line, _ := runtime.Caller(1)
 	stat, err := st.Bind(path).Put(rootPublicID, tr, v)
 	if err != nil {
@@ -109,14 +108,14 @@
 	return storage.ID{}
 }
 
-func Remove(t *testing.T, st *memstore.Store, tr service.Transaction, path string) {
+func Remove(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) {
 	_, file, line, _ := runtime.Caller(1)
 	if err := st.Bind(path).Remove(rootPublicID, tr); err != nil {
 		t.Fatalf("%s(%d): can't remove %s: %s", file, line, path, err)
 	}
 }
 
-func Commit(t *testing.T, tr service.Transaction) {
+func Commit(t *testing.T, tr *memstore.Transaction) {
 	if err := tr.Commit(); err != nil {
 		t.Fatalf("Transaction aborted: %s", err)
 	}
@@ -177,7 +176,7 @@
 	}
 }
 
-func OpenWatch(t *testing.T, dbName string) (service.Watcher, func()) {
+func OpenWatch(t *testing.T, dbName string) (*memwatch.Watcher, func()) {
 	w, err := memwatch.New(rootPublicID, dbName)
 	if err != nil {
 		t.Fatalf("New() failed: %v", err)
diff --git a/services/store/memstore/object.go b/services/store/memstore/object.go
index 411b0a2..9fb0540 100644
--- a/services/store/memstore/object.go
+++ b/services/store/memstore/object.go
@@ -2,7 +2,6 @@
 
 import (
 	iquery "veyron/services/store/memstore/query"
-	"veyron/services/store/service"
 
 	"veyron2/query"
 	"veyron2/security"
@@ -19,7 +18,7 @@
 }
 
 // Exists returns true iff the object has a value in the current transaction.
-func (o *Object) Exists(pid security.PublicID, trans service.Transaction) (bool, error) {
+func (o *Object) Exists(pid security.PublicID, trans *Transaction) (bool, error) {
 	tr, _, err := o.store.getTransaction(trans)
 	if err != nil {
 		return false, err
@@ -30,7 +29,7 @@
 }
 
 // Get returns the value for an object.
-func (o *Object) Get(pid security.PublicID, trans service.Transaction) (*storage.Entry, error) {
+func (o *Object) Get(pid security.PublicID, trans *Transaction) (*storage.Entry, error) {
 	tr, _, err := o.store.getTransaction(trans)
 	if err != nil {
 		return nil, err
@@ -39,7 +38,7 @@
 }
 
 // Put updates the value for an object.
-func (o *Object) Put(pid security.PublicID, trans service.Transaction, v interface{}) (*storage.Stat, error) {
+func (o *Object) Put(pid security.PublicID, trans *Transaction, v interface{}) (*storage.Stat, error) {
 	tr, commit, err := o.store.getTransaction(trans)
 	if err != nil {
 		return nil, err
@@ -55,7 +54,7 @@
 }
 
 // Remove removes the value for an object.
-func (o *Object) Remove(pid security.PublicID, trans service.Transaction) error {
+func (o *Object) Remove(pid security.PublicID, trans *Transaction) error {
 	tr, commit, err := o.store.getTransaction(trans)
 	if err != nil {
 		return err
@@ -70,12 +69,12 @@
 }
 
 // Stat returns entry info.
-func (o *Object) Stat(pid security.PublicID, tr service.Transaction) (*storage.Stat, error) {
+func (o *Object) Stat(pid security.PublicID, trans *Transaction) (*storage.Stat, error) {
 	return nil, verror.Internalf("Stat not yet implemented")
 }
 
 // Query returns entries matching the given query.
-func (o *Object) Query(pid security.PublicID, trans service.Transaction, q query.Query) (iquery.QueryStream, error) {
+func (o *Object) Query(pid security.PublicID, trans *Transaction, q query.Query) (iquery.QueryStream, error) {
 	tr, _, err := o.store.getTransaction(trans)
 	if err != nil {
 		return nil, err
@@ -85,7 +84,7 @@
 }
 
 // Glob returns names that match the given pattern.
-func (o *Object) Glob(pid security.PublicID, trans service.Transaction, pattern string) (iquery.GlobStream, error) {
+func (o *Object) Glob(pid security.PublicID, trans *Transaction, pattern string) (iquery.GlobStream, error) {
 	tr, _, err := o.store.getTransaction(trans)
 	if err != nil {
 		return nil, err
diff --git a/services/store/memstore/transaction.go b/services/store/memstore/transaction.go
index bb82a34..cf01271 100644
--- a/services/store/memstore/transaction.go
+++ b/services/store/memstore/transaction.go
@@ -4,8 +4,6 @@
 	"sync"
 
 	"veyron/services/store/memstore/state"
-	"veyron/services/store/service"
-	"veyron2/verror"
 )
 
 // Transaction is the type of transactions.  Each transaction has a snapshot of
@@ -21,10 +19,6 @@
 	snapshot *state.MutableSnapshot
 }
 
-var (
-	errBadTransaction = verror.BadArgf("bad transaction")
-)
-
 // newNilTransaction is used when nil is passed in as the transaction for an
 // object operation.  This means that the operation is to be performed on the
 // state <st>.
@@ -39,20 +33,16 @@
 // that the transaction lifetime is the duration of the operation (so the
 // transaction should be committed immediately after the operation that uses it
 // is performed).
-func (st *Store) getTransaction(tr service.Transaction) (*Transaction, bool, error) {
+func (st *Store) getTransaction(tr *Transaction) (*Transaction, bool, error) {
 	if tr == nil {
 		return st.newNilTransaction(), true, nil
 	}
-	t, ok := tr.(*Transaction)
-	if !ok {
-		return nil, false, errBadTransaction
-	}
-	t.useState(st)
-	return t, false, nil
+	tr.useState(st)
+	return tr, false, nil
 }
 
 // GetTransactionSnapshot returns a read-only snapshot from the transaction.
-func (st *Store) GetTransactionSnapshot(tr service.Transaction) (state.Snapshot, error) {
+func (st *Store) GetTransactionSnapshot(tr *Transaction) (state.Snapshot, error) {
 	t, _, err := st.getTransaction(tr)
 	if err != nil {
 		return nil, err
diff --git a/services/store/memstore/util_test.go b/services/store/memstore/util_test.go
index c95f94b..a7571ee 100644
--- a/services/store/memstore/util_test.go
+++ b/services/store/memstore/util_test.go
@@ -4,12 +4,10 @@
 	"runtime"
 	"testing"
 
-	"veyron/services/store/service"
-
 	"veyron2/storage"
 )
 
-func mkdir(t *testing.T, st *Store, tr service.Transaction, path string) (storage.ID, interface{}) {
+func mkdir(t *testing.T, st *Store, tr *Transaction, path string) (storage.ID, interface{}) {
 	_, file, line, _ := runtime.Caller(1)
 	dir := &Dir{}
 	stat, err := st.Bind(path).Put(rootPublicID, tr, dir)
@@ -19,7 +17,7 @@
 	return stat.ID, dir
 }
 
-func get(t *testing.T, st *Store, tr service.Transaction, path string) interface{} {
+func get(t *testing.T, st *Store, tr *Transaction, path string) interface{} {
 	_, file, line, _ := runtime.Caller(1)
 	e, err := st.Bind(path).Get(rootPublicID, tr)
 	if err != nil {
@@ -28,7 +26,7 @@
 	return e.Value
 }
 
-func put(t *testing.T, st *Store, tr service.Transaction, path string, v interface{}) storage.ID {
+func put(t *testing.T, st *Store, tr *Transaction, path string, v interface{}) storage.ID {
 	_, file, line, _ := runtime.Caller(1)
 	stat, err := st.Bind(path).Put(rootPublicID, tr, v)
 	if err != nil {
@@ -43,35 +41,35 @@
 	return storage.ID{}
 }
 
-func remove(t *testing.T, st *Store, tr service.Transaction, path string) {
+func remove(t *testing.T, st *Store, tr *Transaction, path string) {
 	if err := st.Bind(path).Remove(rootPublicID, tr); err != nil {
 		_, file, line, _ := runtime.Caller(1)
 		t.Errorf("%s(%d): can't remove %s: %s", file, line, path, err)
 	}
 }
 
-func commit(t *testing.T, tr service.Transaction) {
+func commit(t *testing.T, tr *Transaction) {
 	if err := tr.Commit(); err != nil {
 		_, file, line, _ := runtime.Caller(1)
 		t.Fatalf("%s(%d): Transaction aborted: %s", file, line, err)
 	}
 }
 
-func expectExists(t *testing.T, st *Store, tr service.Transaction, path string) {
+func expectExists(t *testing.T, st *Store, tr *Transaction, path string) {
 	_, file, line, _ := runtime.Caller(1)
 	if ok, _ := st.Bind(path).Exists(rootPublicID, tr); !ok {
 		t.Errorf("%s(%d): does not exist: %s", file, line, path)
 	}
 }
 
-func expectNotExists(t *testing.T, st *Store, tr service.Transaction, path string) {
+func expectNotExists(t *testing.T, st *Store, tr *Transaction, path string) {
 	if e, err := st.Bind(path).Get(rootPublicID, tr); err == nil {
 		_, file, line, _ := runtime.Caller(1)
 		t.Errorf("%s(%d): should not exist: %s: got %+v", file, line, path, e.Value)
 	}
 }
 
-func expectValue(t *testing.T, st *Store, tr service.Transaction, path string, v interface{}) {
+func expectValue(t *testing.T, st *Store, tr *Transaction, path string, v interface{}) {
 	_, file, line, _ := runtime.Caller(1)
 	e, err := st.Bind(path).Get(rootPublicID, tr)
 	if err != nil {
diff --git a/services/store/memstore/watch/test_util.go b/services/store/memstore/watch/test_util.go
index 882e03e..2a5216b 100644
--- a/services/store/memstore/watch/test_util.go
+++ b/services/store/memstore/watch/test_util.go
@@ -8,7 +8,6 @@
 
 	"veyron/services/store/memstore"
 	"veyron/services/store/memstore/state"
-	"veyron/services/store/service"
 
 	"veyron2/security"
 	"veyron2/services/watch"
@@ -19,7 +18,7 @@
 	rootPublicID security.PublicID = security.FakePublicID("root")
 )
 
-func get(t *testing.T, st *memstore.Store, tr service.Transaction, path string) interface{} {
+func get(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) interface{} {
 	_, file, line, _ := runtime.Caller(1)
 	e, err := st.Bind(path).Get(rootPublicID, tr)
 	if err != nil {
@@ -28,7 +27,7 @@
 	return e.Value
 }
 
-func put(t *testing.T, st *memstore.Store, tr service.Transaction, path string, v interface{}) storage.ID {
+func put(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string, v interface{}) storage.ID {
 	_, file, line, _ := runtime.Caller(1)
 	stat, err := st.Bind(path).Put(rootPublicID, tr, v)
 	if err != nil {
@@ -43,14 +42,14 @@
 	return storage.ID{}
 }
 
-func remove(t *testing.T, st *memstore.Store, tr service.Transaction, path string) {
+func remove(t *testing.T, st *memstore.Store, tr *memstore.Transaction, path string) {
 	if err := st.Bind(path).Remove(rootPublicID, tr); err != nil {
 		_, file, line, _ := runtime.Caller(1)
 		t.Fatalf("%s(%d): can't remove %s: %s", file, line, path, err)
 	}
 }
 
-func commit(t *testing.T, tr service.Transaction) {
+func commit(t *testing.T, tr *memstore.Transaction) {
 	if err := tr.Commit(); err != nil {
 		_, file, line, _ := runtime.Caller(1)
 		t.Fatalf("%s(%d): Transaction aborted: %s", file, line, err)
@@ -120,7 +119,7 @@
 	return processor
 }
 
-func createWatcher(t *testing.T, dbName string) (service.Watcher, func()) {
+func createWatcher(t *testing.T, dbName string) (*Watcher, func()) {
 	w, err := New(rootPublicID, dbName)
 	if err != nil {
 		t.Fatalf("New() failed: %v", err)
diff --git a/services/store/memstore/watch/watcher.go b/services/store/memstore/watch/watcher.go
index 9c3e925..7df6565 100644
--- a/services/store/memstore/watch/watcher.go
+++ b/services/store/memstore/watch/watcher.go
@@ -9,7 +9,6 @@
 	"veyron/runtimes/google/lib/sync"
 	"veyron/services/store/memstore"
 	"veyron/services/store/raw"
-	"veyron/services/store/service"
 
 	"veyron2/ipc"
 	"veyron2/security"
@@ -28,7 +27,7 @@
 	}
 )
 
-type watcher struct {
+type Watcher struct {
 	// admin is the public id of the store administrator.
 	admin security.PublicID
 	// dbName is the name of the store's database directory.
@@ -45,8 +44,8 @@
 // concurrent invocations of Watch until it is closed.
 // admin is the public id of the store administrator. dbName is the name of the
 // of the store's database directory.
-func New(admin security.PublicID, dbName string) (service.Watcher, error) {
-	return &watcher{
+func New(admin security.PublicID, dbName string) (*Watcher, error) {
+	return &Watcher{
 		admin:  admin,
 		dbName: dbName,
 		closed: make(chan struct{}),
@@ -54,7 +53,7 @@
 }
 
 // WatchRaw returns a stream of all changes.
-func (w *watcher) WatchRaw(ctx ipc.ServerContext, req raw.Request,
+func (w *Watcher) WatchRaw(ctx ipc.ServerContext, req raw.Request,
 	stream raw.StoreServiceWatchStream) error {
 
 	processor, err := newRawProcessor(ctx.RemoteID())
@@ -65,7 +64,7 @@
 }
 
 // WatchGlob returns a stream of changes that match a pattern.
-func (w *watcher) WatchGlob(ctx ipc.ServerContext, path storage.PathName,
+func (w *Watcher) WatchGlob(ctx ipc.ServerContext, path storage.PathName,
 	req watch.GlobRequest, stream watch.GlobWatcherServiceWatchGlobStream) error {
 
 	processor, err := newGlobProcessor(ctx.RemoteID(), path, req.Pattern)
@@ -76,7 +75,7 @@
 }
 
 // WatchQuery returns a stream of changes that satisfy a query.
-func (w *watcher) WatchQuery(ctx ipc.ServerContext, path storage.PathName,
+func (w *Watcher) WatchQuery(ctx ipc.ServerContext, path storage.PathName,
 	req watch.QueryRequest, stream watch.QueryWatcherServiceWatchQueryStream) error {
 
 	return verror.Internalf("WatchQuery not yet implemented")
@@ -93,7 +92,7 @@
 // sending changes to the specified watch stream. If the call is cancelled or
 // otherwise closed early, Watch will terminate and return an error.
 // Watch implements the service.Watcher interface.
-func (w *watcher) Watch(ctx ipc.ServerContext, processor reqProcessor,
+func (w *Watcher) Watch(ctx ipc.ServerContext, processor reqProcessor,
 	resumeMarker watch.ResumeMarker, stream WatchStream) error {
 
 	// Closing cancel terminates processRequest.
@@ -124,7 +123,7 @@
 	return errWatchClosed
 }
 
-func (w *watcher) processRequest(cancel <-chan struct{}, processor reqProcessor,
+func (w *Watcher) processRequest(cancel <-chan struct{}, processor reqProcessor,
 	resumeMarker watch.ResumeMarker, stream WatchStream) error {
 
 	log, err := memstore.OpenLog(w.dbName, true)
@@ -197,14 +196,14 @@
 }
 
 // Close implements the service.Watcher interface.
-func (w *watcher) Close() error {
+func (w *Watcher) Close() error {
 	close(w.closed)
 	w.pending.Wait()
 	return nil
 }
 
 // IsClosed returns true iff the watcher has been closed.
-func (w *watcher) isClosed() bool {
+func (w *Watcher) isClosed() bool {
 	select {
 	case <-w.closed:
 		return true
diff --git a/services/store/server/server.go b/services/store/server/server.go
index e273656..de5824b 100644
--- a/services/store/server/server.go
+++ b/services/store/server/server.go
@@ -17,7 +17,6 @@
 	"veyron/services/store/memstore"
 	memwatch "veyron/services/store/memstore/watch"
 	"veyron/services/store/raw"
-	"veyron/services/store/service"
 
 	"veyron2/ipc"
 	"veyron2/security"
@@ -61,7 +60,7 @@
 	closed  chan struct{}
 
 	// watcher is the actual store watcher implementation.
-	watcher service.Watcher
+	watcher *memwatch.Watcher
 }
 
 // transactionID is an internal transaction identifier chosen by the server.
@@ -87,7 +86,7 @@
 }
 
 type transaction struct {
-	trans      service.Transaction
+	trans      *memstore.Transaction
 	expires    time.Time
 	creatorCtx transactionContext
 }
@@ -209,13 +208,13 @@
 }
 
 // findTransaction returns the transaction for the given transaction ID.
-func (s *Server) findTransaction(ctx transactionContext, id transactionID) (service.Transaction, error) {
+func (s *Server) findTransaction(ctx transactionContext, id transactionID) (*memstore.Transaction, error) {
 	s.mutex.RLock()
 	defer s.mutex.RUnlock()
 	return s.findTransactionLocked(ctx, id)
 }
 
-func (s *Server) findTransactionLocked(ctx transactionContext, id transactionID) (service.Transaction, error) {
+func (s *Server) findTransactionLocked(ctx transactionContext, id transactionID) (*memstore.Transaction, error) {
 	if id == nullTransactionID {
 		return nil, nil
 	}
diff --git a/services/store/service/service.go b/services/store/service/service.go
deleted file mode 100644
index d6f6fda..0000000
--- a/services/store/service/service.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package service
-
-// Defines the store server Go API.
-// NOTE(sadovsky): See comments in go/vcl/3292 for why we have this API. It may
-// no longer be necessary.
-
-import (
-	"veyron/services/store/raw"
-
-	"veyron2/ipc"
-	"veyron2/services/watch"
-	"veyron2/storage"
-)
-
-// Transaction is like storage.Transaction, but doesn't include extra
-// client-side parameters.
-type Transaction interface {
-	// Commit commits the changes (the Set and Delete operations) in the
-	// transaction to the store.  The operation is atomic, so all Set/Delete
-	// operations are performed, or none.  Returns an error if the transaction
-	// aborted.
-	//
-	// The Transaction should be discarded once Commit is called.  It can no
-	// longer be used.
-	Commit() error
-
-	// Abort discards a transaction.  This is an optimization; transactions
-	// eventually time out and get discarded.  However, live transactions
-	// consume resources, so it is good practice to clean up.
-	Abort() error
-}
-
-// Watcher is the interface for watching store updates matching a pattern or query.
-type Watcher interface {
-	// WatchRaw returns a stream of all changes.
-	WatchRaw(ctx ipc.ServerContext, req raw.Request, stream raw.StoreServiceWatchStream) error
-
-	// WatchGlob returns a stream of changes that match a pattern.
-	WatchGlob(ctx ipc.ServerContext, path storage.PathName, req watch.GlobRequest,
-		stream watch.GlobWatcherServiceWatchGlobStream) error
-
-	// WatchQuery returns a stream of changes that satisfy a query.
-	WatchQuery(ctx ipc.ServerContext, path storage.PathName, req watch.QueryRequest,
-		stream watch.QueryWatcherServiceWatchQueryStream) error
-
-	// Close closes the Watcher, blocking until all Watch invocations complete.
-	Close() error
-}