diff --git a/.changelog/unreleased/breaking-changes/118-remove-remotedb.md b/.changelog/unreleased/breaking-changes/118-remove-remotedb.md new file mode 100644 index 0000000..45cfd13 --- /dev/null +++ b/.changelog/unreleased/breaking-changes/118-remove-remotedb.md @@ -0,0 +1,2 @@ +- Removed supprot for RemoteDB ([\#118](https://github.com/cometbft/cometbft- + db/issues/118)) diff --git a/Makefile b/Makefile index 4ef854c..0f74231 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,6 @@ ifeq (1,$(NON_INTERACTIVE)) DOCKER_TEST_INTERACTIVE_FLAGS := endif -export GO111MODULE = on - all: lint test ### go tests @@ -90,31 +88,6 @@ tools: go get -v $(GOTOOLS) .PHONY: tools -# generates certificates for TLS testing in remotedb -gen_certs: clean_certs - certstrap init --common-name "cometbft.com" --passphrase "" - certstrap request-cert --common-name "remotedb" -ip "127.0.0.1" --passphrase "" - certstrap sign "remotedb" --CA "cometbft.com" --passphrase "" - mv out/remotedb.crt remotedb/test.crt - mv out/remotedb.key remotedb/test.key - rm -rf out -.PHONY: gen_certs - -clean_certs: - rm -f db/remotedb/test.crt - rm -f db/remotedb/test.key -.PHONY: clean_certs - -%.pb.go: %.proto - ## If you get the following error, - ## "error while loading shared libraries: libprotobuf.so.14: cannot open shared object file: No such file or directory" - ## See https://stackoverflow.com/a/25518702 - ## Note the $< here is substituted for the %.proto - ## Note the $@ here is substituted for the %.pb.go - protoc $(INCLUDE) $< --gogo_out=Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,plugins=grpc:../../.. - -protoc_remotedb: remotedb/proto/defs.pb.go - vulncheck: @go run golang.org/x/vuln/cmd/govulncheck@latest ./... .PHONY: vulncheck diff --git a/remotedb/batch.go b/remotedb/batch.go deleted file mode 100644 index 152b904..0000000 --- a/remotedb/batch.go +++ /dev/null @@ -1,84 +0,0 @@ -package remotedb - -import ( - "errors" - "fmt" - - db "github.com/cometbft/cometbft-db" - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -var errBatchClosed = errors.New("batch has been written or closed") - -type batch struct { - db *RemoteDB - ops []*protodb.Operation -} - -var _ db.Batch = (*batch)(nil) - -func newBatch(rdb *RemoteDB) *batch { - return &batch{ - db: rdb, - ops: []*protodb.Operation{}, - } -} - -// Set implements Batch. -func (b *batch) Set(key, value []byte) error { - if b.ops == nil { - return errBatchClosed - } - op := &protodb.Operation{ - Entity: &protodb.Entity{Key: key, Value: value}, - Type: protodb.Operation_SET, - } - b.ops = append(b.ops, op) - return nil -} - -// Delete implements Batch. -func (b *batch) Delete(key []byte) error { - if b.ops == nil { - return errBatchClosed - } - op := &protodb.Operation{ - Entity: &protodb.Entity{Key: key}, - Type: protodb.Operation_DELETE, - } - b.ops = append(b.ops, op) - return nil -} - -// Write implements Batch. -func (b *batch) Write() error { - if b.ops == nil { - return errBatchClosed - } - _, err := b.db.dc.BatchWrite(b.db.ctx, &protodb.Batch{Ops: b.ops}) - if err != nil { - return fmt.Errorf("remoteDB.BatchWrite: %w", err) - } - // Make sure batch cannot be used afterwards. Callers should still call Close(), for errors. - b.Close() - return nil -} - -// WriteSync implements Batch. -func (b *batch) WriteSync() error { - if b.ops == nil { - return errBatchClosed - } - _, err := b.db.dc.BatchWriteSync(b.db.ctx, &protodb.Batch{Ops: b.ops}) - if err != nil { - return fmt.Errorf("RemoteDB.BatchWriteSync: %w", err) - } - // Make sure batch cannot be used afterwards. Callers should still call Close(), for errors. - return b.Close() -} - -// Close implements Batch. -func (b *batch) Close() error { - b.ops = nil - return nil -} diff --git a/remotedb/doc.go b/remotedb/doc.go deleted file mode 100644 index 93d9c8a..0000000 --- a/remotedb/doc.go +++ /dev/null @@ -1,37 +0,0 @@ -/* -remotedb is a package for connecting to distributed Tendermint db.DB -instances. The purpose is to detach difficult deployments such as -CLevelDB that requires gcc or perhaps for databases that require -custom configurations such as extra disk space. It also eases -the burden and cost of deployment of dependencies for databases -to be used by Tendermint developers. Most importantly it is built -over the high performant gRPC transport. - -remotedb's RemoteDB implements db.DB so can be used normally -like other databases. One just has to explicitly connect to the -remote database with a client setup such as: - - client, err := remotedb.NewRemoteDB(addr, cert) - // Make sure to invoke InitRemote! - if err := client.InitRemote(&remotedb.Init{Name: "test-remote-db", Type: "leveldb"}); err != nil { - log.Fatalf("Failed to initialize the remote db") - } - - client.Set(key1, value) - gv1 := client.SetSync(k2, v2) - - client.Delete(k1) - gv2 := client.Get(k1) - - for itr := client.Iterator(k1, k9); itr.Valid(); itr.Next() { - ik, iv := itr.Key(), itr.Value() - ds, de := itr.Domain() - } - - stats := client.Stats() - - if !client.Has(dk1) { - client.SetSync(dk1, dv1) - } -*/ -package remotedb diff --git a/remotedb/grpcdb/client.go b/remotedb/grpcdb/client.go deleted file mode 100644 index 6041a34..0000000 --- a/remotedb/grpcdb/client.go +++ /dev/null @@ -1,22 +0,0 @@ -package grpcdb - -import ( - "google.golang.org/grpc" - "google.golang.org/grpc/credentials" - - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -// NewClient creates a gRPC client connected to the bound gRPC server at serverAddr. -// Use kind to set the level of security to either Secure or Insecure. -func NewClient(serverAddr, serverCert string) (protodb.DBClient, error) { - creds, err := credentials.NewClientTLSFromFile(serverCert, "") - if err != nil { - return nil, err - } - cc, err := grpc.Dial(serverAddr, grpc.WithTransportCredentials(creds)) - if err != nil { - return nil, err - } - return protodb.NewDBClient(cc), nil -} diff --git a/remotedb/grpcdb/doc.go b/remotedb/grpcdb/doc.go deleted file mode 100644 index 9f1c512..0000000 --- a/remotedb/grpcdb/doc.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -grpcdb is the distribution of Tendermint's db.DB instances using -the gRPC transport to decouple local db.DB usages from applications, -to using them over a network in a highly performant manner. - -grpcdb allows users to initialize a database's server like -they would locally and invoke the respective methods of db.DB. - -Most users shouldn't use this package, but should instead use -remotedb. Only the lower level users and database server deployers -should use it, for functionality such as: - - ln, err := net.Listen("tcp", "0.0.0.0:0") - srv := grpcdb.NewServer() - defer srv.Stop() - go func() { - if err := srv.Serve(ln); err != nil { - t.Fatalf("BindServer: %v", err) - } - }() - -or - - addr := ":8998" - cert := "server.crt" - key := "server.key" - go func() { - if err := grpcdb.ListenAndServe(addr, cert, key); err != nil { - log.Fatalf("BindServer: %v", err) - } - }() -*/ -package grpcdb diff --git a/remotedb/grpcdb/example_test.go b/remotedb/grpcdb/example_test.go deleted file mode 100644 index f6c1963..0000000 --- a/remotedb/grpcdb/example_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package grpcdb_test - -import ( - "bytes" - "context" - "log" - - grpcdb "github.com/cometbft/cometbft-db/remotedb/grpcdb" - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -func Example() { - addr := ":8998" - cert := "server.crt" - key := "server.key" - go func() { - if err := grpcdb.ListenAndServe(addr, cert, key); err != nil { - log.Fatalf("BindServer: %v", err) - } - }() - - client, err := grpcdb.NewClient(addr, cert) - if err != nil { - log.Fatalf("Failed to create grpcDB client: %v", err) - } - - ctx := context.Background() - // 1. Initialize the DB - in := &protodb.Init{ - Type: "leveldb", - Name: "grpc-uno-test", - Dir: ".", - } - if _, err := client.Init(ctx, in); err != nil { - log.Fatalf("Init error: %v", err) - } - - // 2. Now it can be used! - query1 := &protodb.Entity{Key: []byte("Project"), Value: []byte("Tmlibs-on-gRPC")} - if _, err := client.SetSync(ctx, query1); err != nil { - log.Fatalf("SetSync err: %v", err) - } - - query2 := &protodb.Entity{Key: []byte("Project")} - read, err := client.Get(ctx, query2) - if err != nil { - log.Fatalf("Get err: %v", err) - } - if g, w := read.Value, []byte("Tmlibs-on-gRPC"); !bytes.Equal(g, w) { - log.Fatalf("got= (%q ==> % X)\nwant=(%q ==> % X)", g, g, w, w) - } -} diff --git a/remotedb/grpcdb/server.go b/remotedb/grpcdb/server.go deleted file mode 100644 index 6241a99..0000000 --- a/remotedb/grpcdb/server.go +++ /dev/null @@ -1,243 +0,0 @@ -package grpcdb - -import ( - "context" - "net" - "sync" - "time" - - "google.golang.org/grpc" - "google.golang.org/grpc/credentials" - - db "github.com/cometbft/cometbft-db" - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -// ListenAndServe is a blocking function that sets up a gRPC based -// server at the address supplied, with the gRPC options passed in. -// Normally in usage, invoke it in a goroutine like you would for http.ListenAndServe. -func ListenAndServe(addr, cert, key string, opts ...grpc.ServerOption) error { - ln, err := net.Listen("tcp", addr) - if err != nil { - return err - } - srv, err := NewServer(cert, key, opts...) - if err != nil { - return err - } - return srv.Serve(ln) -} - -func NewServer(cert, key string, opts ...grpc.ServerOption) (*grpc.Server, error) { - creds, err := credentials.NewServerTLSFromFile(cert, key) - if err != nil { - return nil, err - } - opts = append(opts, grpc.Creds(creds)) - srv := grpc.NewServer(opts...) - protodb.RegisterDBServer(srv, new(server)) - return srv, nil -} - -type server struct { - mu sync.Mutex - db db.DB -} - -var _ protodb.DBServer = (*server)(nil) - -// Init initializes the server's database. Only one type of database -// can be initialized per server. -// -// Dir is the directory on the file system in which the DB will be stored(if backed by disk) (TODO: remove) -// -// # Name is representative filesystem entry's basepath -// -// Type can be either one of: -// - cleveldb (if built with gcc enabled) -// - fsdb -// - memdB -// - goleveldb -func (s *server) Init(ctx context.Context, in *protodb.Init) (*protodb.Entity, error) { - s.mu.Lock() - defer s.mu.Unlock() - - var err error - s.db, err = db.NewDB(in.Name, db.BackendType(in.Type), in.Dir) - if err != nil { - return nil, err - } - return &protodb.Entity{CreatedAt: time.Now().Unix()}, nil -} - -func (s *server) Delete(ctx context.Context, in *protodb.Entity) (*protodb.Nothing, error) { - err := s.db.Delete(in.Key) - if err != nil { - return nil, err - } - return nothing, nil -} - -var nothing = new(protodb.Nothing) - -func (s *server) DeleteSync(ctx context.Context, in *protodb.Entity) (*protodb.Nothing, error) { - err := s.db.DeleteSync(in.Key) - if err != nil { - return nil, err - } - return nothing, nil -} - -func (s *server) Get(ctx context.Context, in *protodb.Entity) (*protodb.Entity, error) { - value, err := s.db.Get(in.Key) - if err != nil { - return nil, err - } - return &protodb.Entity{Value: value}, nil -} - -func (s *server) GetStream(ds protodb.DB_GetStreamServer) error { - // Receive routine - responsesChan := make(chan *protodb.Entity) - go func() { - defer close(responsesChan) - ctx := context.Background() - for { - in, err := ds.Recv() - if err != nil { - responsesChan <- &protodb.Entity{Err: err.Error()} - return - } - out, err := s.Get(ctx, in) - if err != nil { - if out == nil { - out = new(protodb.Entity) - out.Key = in.Key - } - out.Err = err.Error() - responsesChan <- out - return - } - - // Otherwise continue on - responsesChan <- out - } - }() - - // Send routine, block until we return - for out := range responsesChan { - if err := ds.Send(out); err != nil { - return err - } - } - return nil -} - -func (s *server) Has(ctx context.Context, in *protodb.Entity) (*protodb.Entity, error) { - exists, err := s.db.Has(in.Key) - if err != nil { - return nil, err - } - return &protodb.Entity{Exists: exists}, nil -} - -func (s *server) Set(ctx context.Context, in *protodb.Entity) (*protodb.Nothing, error) { - err := s.db.Set(in.Key, in.Value) - if err != nil { - return nil, err - } - return nothing, nil -} - -func (s *server) SetSync(ctx context.Context, in *protodb.Entity) (*protodb.Nothing, error) { - err := s.db.SetSync(in.Key, in.Value) - if err != nil { - return nil, err - } - return nothing, nil -} - -func (s *server) Iterator(query *protodb.Entity, dis protodb.DB_IteratorServer) error { - it, err := s.db.Iterator(query.Start, query.End) - if err != nil { - return err - } - defer it.Close() - return s.handleIterator(it, dis.Send) -} - -func (s *server) handleIterator(it db.Iterator, sendFunc func(*protodb.Iterator) error) error { - for it.Valid() { - start, end := it.Domain() - key := it.Key() - value := it.Value() - - out := &protodb.Iterator{ - Domain: &protodb.Domain{Start: start, End: end}, - Valid: it.Valid(), - Key: key, - Value: value, - } - if err := sendFunc(out); err != nil { - return err - } - - // Finally move the iterator forward, - it.Next() - - } - return nil -} - -func (s *server) ReverseIterator(query *protodb.Entity, dis protodb.DB_ReverseIteratorServer) error { - it, err := s.db.ReverseIterator(query.Start, query.End) - if err != nil { - return err - } - defer it.Close() - return s.handleIterator(it, dis.Send) -} - -func (s *server) Stats(context.Context, *protodb.Nothing) (*protodb.Stats, error) { - stats := s.db.Stats() - return &protodb.Stats{Data: stats, TimeAt: time.Now().Unix()}, nil -} - -func (s *server) BatchWrite(c context.Context, b *protodb.Batch) (*protodb.Nothing, error) { - return s.batchWrite(c, b, false) -} - -func (s *server) BatchWriteSync(c context.Context, b *protodb.Batch) (*protodb.Nothing, error) { - return s.batchWrite(c, b, true) -} - -func (s *server) batchWrite(c context.Context, b *protodb.Batch, sync bool) (*protodb.Nothing, error) { //nolint:unparam - bat := s.db.NewBatch() - defer bat.Close() - for _, op := range b.Ops { - switch op.Type { - case protodb.Operation_SET: - err := bat.Set(op.Entity.Key, op.Entity.Value) - if err != nil { - return nil, err - } - case protodb.Operation_DELETE: - err := bat.Delete(op.Entity.Key) - if err != nil { - return nil, err - } - } - } - if sync { - err := bat.WriteSync() - if err != nil { - return nil, err - } - } else { - err := bat.Write() - if err != nil { - return nil, err - } - } - return nothing, nil -} diff --git a/remotedb/iterator.go b/remotedb/iterator.go deleted file mode 100644 index 11c36ad..0000000 --- a/remotedb/iterator.go +++ /dev/null @@ -1,138 +0,0 @@ -package remotedb - -import ( - db "github.com/cometbft/cometbft-db" - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -func makeIterator(dic protodb.DB_IteratorClient) db.Iterator { - itr := &iterator{dic: dic} - itr.Next() // We need to call Next to prime the iterator - return itr -} - -func makeReverseIterator(dric protodb.DB_ReverseIteratorClient) db.Iterator { - rItr := &reverseIterator{dric: dric} - rItr.Next() // We need to call Next to prime the iterator - return rItr -} - -type reverseIterator struct { - dric protodb.DB_ReverseIteratorClient - cur *protodb.Iterator - err error -} - -var _ db.Iterator = (*iterator)(nil) - -// Valid implements Iterator. -func (rItr *reverseIterator) Valid() bool { - return rItr.cur != nil && rItr.cur.Valid && rItr.err == nil -} - -// Domain implements Iterator. -func (rItr *reverseIterator) Domain() (start, end []byte) { - if rItr.cur == nil || rItr.cur.Domain == nil { - return nil, nil - } - return rItr.cur.Domain.Start, rItr.cur.Domain.End -} - -// Next implements Iterator. -func (rItr *reverseIterator) Next() { - var err error - rItr.cur, err = rItr.dric.Recv() - if err != nil { - rItr.err = err - } -} - -// Key implements Iterator. -func (rItr *reverseIterator) Key() []byte { - rItr.assertIsValid() - return rItr.cur.Key -} - -// Value implements Iterator. -func (rItr *reverseIterator) Value() []byte { - rItr.assertIsValid() - return rItr.cur.Value -} - -// Error implements Iterator. -func (rItr *reverseIterator) Error() error { - return rItr.err -} - -// Close implements Iterator. -func (rItr *reverseIterator) Close() error { - return nil -} - -func (rItr *reverseIterator) assertIsValid() { - if !rItr.Valid() { - panic("iterator is invalid") - } -} - -// iterator implements the db.Iterator by retrieving -// streamed iterators from the remote backend as -// needed. It is NOT safe for concurrent usage, -// matching the behavior of other iterators. -type iterator struct { - dic protodb.DB_IteratorClient - cur *protodb.Iterator - err error -} - -var _ db.Iterator = (*iterator)(nil) - -// Valid implements Iterator. -func (itr *iterator) Valid() bool { - return itr.cur != nil && itr.cur.Valid && itr.err == nil -} - -// Domain implements Iterator. -func (itr *iterator) Domain() (start, end []byte) { - if itr.cur == nil || itr.cur.Domain == nil { - return nil, nil - } - return itr.cur.Domain.Start, itr.cur.Domain.End -} - -// Next implements Iterator. -func (itr *iterator) Next() { - var err error - itr.cur, err = itr.dic.Recv() - if err != nil { - itr.err = err - } -} - -// Key implements Iterator. -func (itr *iterator) Key() []byte { - itr.assertIsValid() - return itr.cur.Key -} - -// Value implements Iterator. -func (itr *iterator) Value() []byte { - itr.assertIsValid() - return itr.cur.Value -} - -// Error implements Iterator. -func (itr *iterator) Error() error { - return itr.err -} - -// Close implements Iterator. -func (itr *iterator) Close() error { - return itr.dic.CloseSend() -} - -func (itr *iterator) assertIsValid() { - if !itr.Valid() { - panic("iterator is invalid") - } -} diff --git a/remotedb/proto/defs.pb.go b/remotedb/proto/defs.pb.go deleted file mode 100644 index f3b9858..0000000 --- a/remotedb/proto/defs.pb.go +++ /dev/null @@ -1,1615 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: remotedb/proto/defs.proto - -package protodb - -import ( - bytes "bytes" - context "context" - fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -type Operation_Type int32 - -const ( - Operation_SET Operation_Type = 0 - Operation_DELETE Operation_Type = 1 -) - -var Operation_Type_name = map[int32]string{ - 0: "SET", - 1: "DELETE", -} - -var Operation_Type_value = map[string]int32{ - "SET": 0, - "DELETE": 1, -} - -func (x Operation_Type) String() string { - return proto.EnumName(Operation_Type_name, int32(x)) -} - -func (Operation_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{1, 0} -} - -type Batch struct { - Ops []*Operation `protobuf:"bytes,1,rep,name=ops,proto3" json:"ops,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Batch) Reset() { *m = Batch{} } -func (m *Batch) String() string { return proto.CompactTextString(m) } -func (*Batch) ProtoMessage() {} -func (*Batch) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{0} -} -func (m *Batch) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Batch.Unmarshal(m, b) -} -func (m *Batch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Batch.Marshal(b, m, deterministic) -} -func (m *Batch) XXX_Merge(src proto.Message) { - xxx_messageInfo_Batch.Merge(m, src) -} -func (m *Batch) XXX_Size() int { - return xxx_messageInfo_Batch.Size(m) -} -func (m *Batch) XXX_DiscardUnknown() { - xxx_messageInfo_Batch.DiscardUnknown(m) -} - -var xxx_messageInfo_Batch proto.InternalMessageInfo - -func (m *Batch) GetOps() []*Operation { - if m != nil { - return m.Ops - } - return nil -} - -type Operation struct { - Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - Type Operation_Type `protobuf:"varint,2,opt,name=type,proto3,enum=protodb.Operation_Type" json:"type,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Operation) Reset() { *m = Operation{} } -func (m *Operation) String() string { return proto.CompactTextString(m) } -func (*Operation) ProtoMessage() {} -func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{1} -} -func (m *Operation) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Operation.Unmarshal(m, b) -} -func (m *Operation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Operation.Marshal(b, m, deterministic) -} -func (m *Operation) XXX_Merge(src proto.Message) { - xxx_messageInfo_Operation.Merge(m, src) -} -func (m *Operation) XXX_Size() int { - return xxx_messageInfo_Operation.Size(m) -} -func (m *Operation) XXX_DiscardUnknown() { - xxx_messageInfo_Operation.DiscardUnknown(m) -} - -var xxx_messageInfo_Operation proto.InternalMessageInfo - -func (m *Operation) GetEntity() *Entity { - if m != nil { - return m.Entity - } - return nil -} - -func (m *Operation) GetType() Operation_Type { - if m != nil { - return m.Type - } - return Operation_SET -} - -type Entity struct { - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` - Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - Exists bool `protobuf:"varint,4,opt,name=exists,proto3" json:"exists,omitempty"` - Start []byte `protobuf:"bytes,5,opt,name=start,proto3" json:"start,omitempty"` - End []byte `protobuf:"bytes,6,opt,name=end,proto3" json:"end,omitempty"` - Err string `protobuf:"bytes,7,opt,name=err,proto3" json:"err,omitempty"` - CreatedAt int64 `protobuf:"varint,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Entity) Reset() { *m = Entity{} } -func (m *Entity) String() string { return proto.CompactTextString(m) } -func (*Entity) ProtoMessage() {} -func (*Entity) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{2} -} -func (m *Entity) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Entity.Unmarshal(m, b) -} -func (m *Entity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Entity.Marshal(b, m, deterministic) -} -func (m *Entity) XXX_Merge(src proto.Message) { - xxx_messageInfo_Entity.Merge(m, src) -} -func (m *Entity) XXX_Size() int { - return xxx_messageInfo_Entity.Size(m) -} -func (m *Entity) XXX_DiscardUnknown() { - xxx_messageInfo_Entity.DiscardUnknown(m) -} - -var xxx_messageInfo_Entity proto.InternalMessageInfo - -func (m *Entity) GetId() int32 { - if m != nil { - return m.Id - } - return 0 -} - -func (m *Entity) GetKey() []byte { - if m != nil { - return m.Key - } - return nil -} - -func (m *Entity) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -func (m *Entity) GetExists() bool { - if m != nil { - return m.Exists - } - return false -} - -func (m *Entity) GetStart() []byte { - if m != nil { - return m.Start - } - return nil -} - -func (m *Entity) GetEnd() []byte { - if m != nil { - return m.End - } - return nil -} - -func (m *Entity) GetErr() string { - if m != nil { - return m.Err - } - return "" -} - -func (m *Entity) GetCreatedAt() int64 { - if m != nil { - return m.CreatedAt - } - return 0 -} - -type Nothing struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Nothing) Reset() { *m = Nothing{} } -func (m *Nothing) String() string { return proto.CompactTextString(m) } -func (*Nothing) ProtoMessage() {} -func (*Nothing) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{3} -} -func (m *Nothing) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Nothing.Unmarshal(m, b) -} -func (m *Nothing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Nothing.Marshal(b, m, deterministic) -} -func (m *Nothing) XXX_Merge(src proto.Message) { - xxx_messageInfo_Nothing.Merge(m, src) -} -func (m *Nothing) XXX_Size() int { - return xxx_messageInfo_Nothing.Size(m) -} -func (m *Nothing) XXX_DiscardUnknown() { - xxx_messageInfo_Nothing.DiscardUnknown(m) -} - -var xxx_messageInfo_Nothing proto.InternalMessageInfo - -type Domain struct { - Start []byte `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - End []byte `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Domain) Reset() { *m = Domain{} } -func (m *Domain) String() string { return proto.CompactTextString(m) } -func (*Domain) ProtoMessage() {} -func (*Domain) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{4} -} -func (m *Domain) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Domain.Unmarshal(m, b) -} -func (m *Domain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Domain.Marshal(b, m, deterministic) -} -func (m *Domain) XXX_Merge(src proto.Message) { - xxx_messageInfo_Domain.Merge(m, src) -} -func (m *Domain) XXX_Size() int { - return xxx_messageInfo_Domain.Size(m) -} -func (m *Domain) XXX_DiscardUnknown() { - xxx_messageInfo_Domain.DiscardUnknown(m) -} - -var xxx_messageInfo_Domain proto.InternalMessageInfo - -func (m *Domain) GetStart() []byte { - if m != nil { - return m.Start - } - return nil -} - -func (m *Domain) GetEnd() []byte { - if m != nil { - return m.End - } - return nil -} - -type Iterator struct { - Domain *Domain `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - Valid bool `protobuf:"varint,2,opt,name=valid,proto3" json:"valid,omitempty"` - Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` - Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Iterator) Reset() { *m = Iterator{} } -func (m *Iterator) String() string { return proto.CompactTextString(m) } -func (*Iterator) ProtoMessage() {} -func (*Iterator) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{5} -} -func (m *Iterator) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Iterator.Unmarshal(m, b) -} -func (m *Iterator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Iterator.Marshal(b, m, deterministic) -} -func (m *Iterator) XXX_Merge(src proto.Message) { - xxx_messageInfo_Iterator.Merge(m, src) -} -func (m *Iterator) XXX_Size() int { - return xxx_messageInfo_Iterator.Size(m) -} -func (m *Iterator) XXX_DiscardUnknown() { - xxx_messageInfo_Iterator.DiscardUnknown(m) -} - -var xxx_messageInfo_Iterator proto.InternalMessageInfo - -func (m *Iterator) GetDomain() *Domain { - if m != nil { - return m.Domain - } - return nil -} - -func (m *Iterator) GetValid() bool { - if m != nil { - return m.Valid - } - return false -} - -func (m *Iterator) GetKey() []byte { - if m != nil { - return m.Key - } - return nil -} - -func (m *Iterator) GetValue() []byte { - if m != nil { - return m.Value - } - return nil -} - -type Stats struct { - Data map[string]string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - TimeAt int64 `protobuf:"varint,2,opt,name=time_at,json=timeAt,proto3" json:"time_at,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Stats) Reset() { *m = Stats{} } -func (m *Stats) String() string { return proto.CompactTextString(m) } -func (*Stats) ProtoMessage() {} -func (*Stats) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{6} -} -func (m *Stats) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Stats.Unmarshal(m, b) -} -func (m *Stats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Stats.Marshal(b, m, deterministic) -} -func (m *Stats) XXX_Merge(src proto.Message) { - xxx_messageInfo_Stats.Merge(m, src) -} -func (m *Stats) XXX_Size() int { - return xxx_messageInfo_Stats.Size(m) -} -func (m *Stats) XXX_DiscardUnknown() { - xxx_messageInfo_Stats.DiscardUnknown(m) -} - -var xxx_messageInfo_Stats proto.InternalMessageInfo - -func (m *Stats) GetData() map[string]string { - if m != nil { - return m.Data - } - return nil -} - -func (m *Stats) GetTimeAt() int64 { - if m != nil { - return m.TimeAt - } - return 0 -} - -type Init struct { - Type string `protobuf:"bytes,1,opt,name=Type,proto3" json:"Type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Dir string `protobuf:"bytes,3,opt,name=Dir,proto3" json:"Dir,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Init) Reset() { *m = Init{} } -func (m *Init) String() string { return proto.CompactTextString(m) } -func (*Init) ProtoMessage() {} -func (*Init) Descriptor() ([]byte, []int) { - return fileDescriptor_ef1eada6618d0075, []int{7} -} -func (m *Init) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Init.Unmarshal(m, b) -} -func (m *Init) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Init.Marshal(b, m, deterministic) -} -func (m *Init) XXX_Merge(src proto.Message) { - xxx_messageInfo_Init.Merge(m, src) -} -func (m *Init) XXX_Size() int { - return xxx_messageInfo_Init.Size(m) -} -func (m *Init) XXX_DiscardUnknown() { - xxx_messageInfo_Init.DiscardUnknown(m) -} - -var xxx_messageInfo_Init proto.InternalMessageInfo - -func (m *Init) GetType() string { - if m != nil { - return m.Type - } - return "" -} - -func (m *Init) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Init) GetDir() string { - if m != nil { - return m.Dir - } - return "" -} - -func init() { - proto.RegisterEnum("protodb.Operation_Type", Operation_Type_name, Operation_Type_value) - proto.RegisterType((*Batch)(nil), "protodb.Batch") - proto.RegisterType((*Operation)(nil), "protodb.Operation") - proto.RegisterType((*Entity)(nil), "protodb.Entity") - proto.RegisterType((*Nothing)(nil), "protodb.Nothing") - proto.RegisterType((*Domain)(nil), "protodb.Domain") - proto.RegisterType((*Iterator)(nil), "protodb.Iterator") - proto.RegisterType((*Stats)(nil), "protodb.Stats") - proto.RegisterMapType((map[string]string)(nil), "protodb.Stats.DataEntry") - proto.RegisterType((*Init)(nil), "protodb.Init") -} - -func init() { proto.RegisterFile("remotedb/proto/defs.proto", fileDescriptor_ef1eada6618d0075) } - -var fileDescriptor_ef1eada6618d0075 = []byte{ - // 662 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xd3, 0x4a, - 0x14, 0xcd, 0xd8, 0x8e, 0x13, 0xdf, 0xf6, 0xa5, 0x79, 0xa3, 0xa7, 0x57, 0xbf, 0x3c, 0x51, 0x45, - 0x16, 0x12, 0x86, 0x52, 0x37, 0xa4, 0x48, 0x7c, 0xac, 0x68, 0x95, 0x2c, 0x2a, 0xa1, 0x22, 0x39, - 0x95, 0x58, 0xa2, 0x49, 0x3c, 0x4d, 0x46, 0x34, 0x76, 0x18, 0xdf, 0x56, 0x64, 0xc3, 0x96, 0xbf, - 0xc2, 0x96, 0x1d, 0x7f, 0x87, 0xfe, 0x0a, 0x24, 0x36, 0x68, 0x66, 0x1c, 0x87, 0x36, 0x59, 0x84, - 0x55, 0xee, 0xc7, 0x39, 0xe7, 0xce, 0x9c, 0x5c, 0x0f, 0xfc, 0x27, 0xf9, 0x34, 0x43, 0x9e, 0x0c, - 0x0f, 0x67, 0x32, 0xc3, 0xec, 0x30, 0xe1, 0x17, 0x79, 0xa4, 0x43, 0x5a, 0xd3, 0x3f, 0xc9, 0xb0, - 0x75, 0x30, 0x16, 0x38, 0xb9, 0x1a, 0x46, 0xa3, 0x6c, 0x7a, 0x38, 0xce, 0xc6, 0x99, 0x81, 0x0e, - 0xaf, 0x2e, 0x74, 0x66, 0x78, 0x2a, 0x32, 0xbc, 0xe0, 0x00, 0xaa, 0x27, 0x0c, 0x47, 0x13, 0x7a, - 0x1f, 0xec, 0x6c, 0x96, 0xfb, 0xa4, 0x6d, 0x87, 0x5b, 0x5d, 0x1a, 0x15, 0x72, 0xd1, 0x9b, 0x19, - 0x97, 0x0c, 0x45, 0x96, 0xc6, 0xaa, 0x1d, 0x7c, 0x02, 0xaf, 0xac, 0xd0, 0x07, 0xe0, 0xf2, 0x14, - 0x05, 0xce, 0x7d, 0xd2, 0x26, 0xe1, 0x56, 0x77, 0xa7, 0x64, 0xf5, 0x75, 0x39, 0x2e, 0xda, 0x74, - 0x1f, 0x1c, 0x9c, 0xcf, 0xb8, 0x6f, 0xb5, 0x49, 0xd8, 0xe8, 0xee, 0xae, 0x8a, 0x47, 0xe7, 0xf3, - 0x19, 0x8f, 0x35, 0x28, 0xf8, 0x1f, 0x1c, 0x95, 0xd1, 0x1a, 0xd8, 0x83, 0xfe, 0x79, 0xb3, 0x42, - 0x01, 0xdc, 0x5e, 0xff, 0x75, 0xff, 0xbc, 0xdf, 0x24, 0xc1, 0x57, 0x02, 0xae, 0x11, 0xa7, 0x0d, - 0xb0, 0x44, 0xa2, 0x27, 0x57, 0x63, 0x4b, 0x24, 0xb4, 0x09, 0xf6, 0x7b, 0x3e, 0xd7, 0x33, 0xb6, - 0x63, 0x15, 0xd2, 0x7f, 0xa0, 0x7a, 0xcd, 0x2e, 0xaf, 0xb8, 0x6f, 0xeb, 0x9a, 0x49, 0xe8, 0xbf, - 0xe0, 0xf2, 0x8f, 0x22, 0xc7, 0xdc, 0x77, 0xda, 0x24, 0xac, 0xc7, 0x45, 0xa6, 0xd0, 0x39, 0x32, - 0x89, 0x7e, 0xd5, 0xa0, 0x75, 0xa2, 0x54, 0x79, 0x9a, 0xf8, 0xae, 0x51, 0xe5, 0xa9, 0x9e, 0xc3, - 0xa5, 0xf4, 0x6b, 0x6d, 0x12, 0x7a, 0xb1, 0x0a, 0xe9, 0x3d, 0x80, 0x91, 0xe4, 0x0c, 0x79, 0xf2, - 0x8e, 0xa1, 0x5f, 0x6f, 0x93, 0xd0, 0x8e, 0xbd, 0xa2, 0x72, 0x8c, 0x81, 0x07, 0xb5, 0xb3, 0x0c, - 0x27, 0x22, 0x1d, 0x07, 0x1d, 0x70, 0x7b, 0xd9, 0x94, 0x89, 0x74, 0x39, 0x8d, 0xac, 0x99, 0x66, - 0x95, 0xd3, 0x82, 0x0f, 0x50, 0x3f, 0x45, 0xe5, 0x52, 0x26, 0x95, 0xdf, 0x89, 0x66, 0xaf, 0xf8, - 0x6d, 0x44, 0xe3, 0xa2, 0x5d, 0x5c, 0x5c, 0x18, 0xa1, 0x7a, 0x6c, 0x92, 0x85, 0x41, 0xf6, 0x1a, - 0x83, 0x9c, 0xdf, 0x0c, 0x0a, 0x3e, 0x13, 0xa8, 0x0e, 0x90, 0x61, 0x4e, 0x1f, 0x83, 0x93, 0x30, - 0x64, 0xc5, 0x52, 0xf8, 0xe5, 0x38, 0xdd, 0x8d, 0x7a, 0x0c, 0x59, 0x3f, 0x45, 0x39, 0x8f, 0x35, - 0x8a, 0xee, 0x42, 0x0d, 0xc5, 0x94, 0x2b, 0x0f, 0x2c, 0xed, 0x81, 0xab, 0xd2, 0x63, 0x6c, 0x3d, - 0x03, 0xaf, 0xc4, 0x2e, 0x4e, 0x41, 0x8c, 0x7d, 0xb7, 0x4e, 0x61, 0xe9, 0x9a, 0x49, 0x5e, 0x5a, - 0xcf, 0x49, 0xf0, 0x0a, 0x9c, 0xd3, 0x54, 0x20, 0xa5, 0x66, 0x25, 0x0a, 0x92, 0x59, 0x0f, 0x0a, - 0xce, 0x19, 0x9b, 0x2e, 0x48, 0x3a, 0x56, 0xda, 0x3d, 0x21, 0xf5, 0x0d, 0xbd, 0x58, 0x85, 0xdd, - 0x9f, 0x0e, 0x58, 0xbd, 0x13, 0x1a, 0x82, 0x23, 0x94, 0xd0, 0x5f, 0xe5, 0x15, 0x94, 0x6e, 0xeb, - 0xee, 0xc2, 0x06, 0x15, 0xfa, 0x10, 0xec, 0x31, 0x47, 0x7a, 0xb7, 0xb3, 0x0e, 0x7a, 0x04, 0xde, - 0x98, 0xe3, 0x00, 0x25, 0x67, 0xd3, 0x4d, 0x08, 0x21, 0xe9, 0x10, 0xa5, 0x3f, 0x61, 0xf9, 0x46, - 0xfa, 0x8f, 0xc0, 0xce, 0xd7, 0x1d, 0xa5, 0x59, 0x16, 0x16, 0x6b, 0x55, 0xa1, 0x11, 0xd4, 0x72, - 0x8e, 0x83, 0x79, 0x3a, 0xda, 0x0c, 0x7f, 0x00, 0x6e, 0xc2, 0x2f, 0x39, 0xf2, 0xcd, 0xe0, 0x4f, - 0x00, 0x0c, 0x7c, 0xf3, 0x09, 0x5d, 0xa8, 0x8b, 0xc5, 0xe2, 0xae, 0x10, 0xfe, 0x5e, 0xfe, 0x0f, - 0x05, 0x26, 0xa8, 0x74, 0x08, 0x7d, 0x01, 0x3b, 0x92, 0x5f, 0x73, 0x99, 0xf3, 0xd3, 0x3f, 0xa5, - 0xee, 0xeb, 0xef, 0x09, 0x73, 0xba, 0x72, 0x96, 0x56, 0xe3, 0xf6, 0xde, 0x06, 0x15, 0xda, 0x01, - 0x18, 0xaa, 0x47, 0xef, 0xad, 0x14, 0xc8, 0xe9, 0xb2, 0xaf, 0x5f, 0xc2, 0xb5, 0xb7, 0x79, 0x0a, - 0x8d, 0x25, 0x43, 0x9b, 0xb0, 0x01, 0xeb, 0x64, 0xfb, 0xc7, 0xf7, 0x3d, 0xf2, 0xe5, 0x66, 0x8f, - 0x7c, 0xbb, 0xd9, 0x23, 0x43, 0x57, 0x03, 0x8e, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x88, - 0xfd, 0x5e, 0xc6, 0x05, 0x00, 0x00, -} - -func (this *Batch) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Batch) - if !ok { - that2, ok := that.(Batch) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if len(this.Ops) != len(that1.Ops) { - return false - } - for i := range this.Ops { - if !this.Ops[i].Equal(that1.Ops[i]) { - return false - } - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Operation) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Operation) - if !ok { - that2, ok := that.(Operation) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if !this.Entity.Equal(that1.Entity) { - return false - } - if this.Type != that1.Type { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Entity) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Entity) - if !ok { - that2, ok := that.(Entity) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if this.Id != that1.Id { - return false - } - if !bytes.Equal(this.Key, that1.Key) { - return false - } - if !bytes.Equal(this.Value, that1.Value) { - return false - } - if this.Exists != that1.Exists { - return false - } - if !bytes.Equal(this.Start, that1.Start) { - return false - } - if !bytes.Equal(this.End, that1.End) { - return false - } - if this.Err != that1.Err { - return false - } - if this.CreatedAt != that1.CreatedAt { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Nothing) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Nothing) - if !ok { - that2, ok := that.(Nothing) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Domain) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Domain) - if !ok { - that2, ok := that.(Domain) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if !bytes.Equal(this.Start, that1.Start) { - return false - } - if !bytes.Equal(this.End, that1.End) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Iterator) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Iterator) - if !ok { - that2, ok := that.(Iterator) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if !this.Domain.Equal(that1.Domain) { - return false - } - if this.Valid != that1.Valid { - return false - } - if !bytes.Equal(this.Key, that1.Key) { - return false - } - if !bytes.Equal(this.Value, that1.Value) { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Stats) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Stats) - if !ok { - that2, ok := that.(Stats) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if len(this.Data) != len(that1.Data) { - return false - } - for i := range this.Data { - if this.Data[i] != that1.Data[i] { - return false - } - } - if this.TimeAt != that1.TimeAt { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} -func (this *Init) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*Init) - if !ok { - that2, ok := that.(Init) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if this.Type != that1.Type { - return false - } - if this.Name != that1.Name { - return false - } - if this.Dir != that1.Dir { - return false - } - if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { - return false - } - return true -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// DBClient is the client API for DB service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type DBClient interface { - Init(ctx context.Context, in *Init, opts ...grpc.CallOption) (*Entity, error) - Get(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Entity, error) - GetStream(ctx context.Context, opts ...grpc.CallOption) (DB_GetStreamClient, error) - Has(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Entity, error) - Set(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) - SetSync(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) - Delete(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) - DeleteSync(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) - Iterator(ctx context.Context, in *Entity, opts ...grpc.CallOption) (DB_IteratorClient, error) - ReverseIterator(ctx context.Context, in *Entity, opts ...grpc.CallOption) (DB_ReverseIteratorClient, error) - // rpc print(Nothing) returns (Entity) {} - Stats(ctx context.Context, in *Nothing, opts ...grpc.CallOption) (*Stats, error) - BatchWrite(ctx context.Context, in *Batch, opts ...grpc.CallOption) (*Nothing, error) - BatchWriteSync(ctx context.Context, in *Batch, opts ...grpc.CallOption) (*Nothing, error) -} - -type dBClient struct { - cc *grpc.ClientConn -} - -func NewDBClient(cc *grpc.ClientConn) DBClient { - return &dBClient{cc} -} - -func (c *dBClient) Init(ctx context.Context, in *Init, opts ...grpc.CallOption) (*Entity, error) { - out := new(Entity) - err := c.cc.Invoke(ctx, "/protodb.DB/init", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) Get(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Entity, error) { - out := new(Entity) - err := c.cc.Invoke(ctx, "/protodb.DB/get", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) GetStream(ctx context.Context, opts ...grpc.CallOption) (DB_GetStreamClient, error) { - stream, err := c.cc.NewStream(ctx, &_DB_serviceDesc.Streams[0], "/protodb.DB/getStream", opts...) - if err != nil { - return nil, err - } - x := &dBGetStreamClient{stream} - return x, nil -} - -type DB_GetStreamClient interface { - Send(*Entity) error - Recv() (*Entity, error) - grpc.ClientStream -} - -type dBGetStreamClient struct { - grpc.ClientStream -} - -func (x *dBGetStreamClient) Send(m *Entity) error { - return x.ClientStream.SendMsg(m) -} - -func (x *dBGetStreamClient) Recv() (*Entity, error) { - m := new(Entity) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *dBClient) Has(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Entity, error) { - out := new(Entity) - err := c.cc.Invoke(ctx, "/protodb.DB/has", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) Set(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/set", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) SetSync(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/setSync", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) Delete(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/delete", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) DeleteSync(ctx context.Context, in *Entity, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/deleteSync", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) Iterator(ctx context.Context, in *Entity, opts ...grpc.CallOption) (DB_IteratorClient, error) { - stream, err := c.cc.NewStream(ctx, &_DB_serviceDesc.Streams[1], "/protodb.DB/iterator", opts...) - if err != nil { - return nil, err - } - x := &dBIteratorClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type DB_IteratorClient interface { - Recv() (*Iterator, error) - grpc.ClientStream -} - -type dBIteratorClient struct { - grpc.ClientStream -} - -func (x *dBIteratorClient) Recv() (*Iterator, error) { - m := new(Iterator) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *dBClient) ReverseIterator(ctx context.Context, in *Entity, opts ...grpc.CallOption) (DB_ReverseIteratorClient, error) { - stream, err := c.cc.NewStream(ctx, &_DB_serviceDesc.Streams[2], "/protodb.DB/reverseIterator", opts...) - if err != nil { - return nil, err - } - x := &dBReverseIteratorClient{stream} - if err := x.ClientStream.SendMsg(in); err != nil { - return nil, err - } - if err := x.ClientStream.CloseSend(); err != nil { - return nil, err - } - return x, nil -} - -type DB_ReverseIteratorClient interface { - Recv() (*Iterator, error) - grpc.ClientStream -} - -type dBReverseIteratorClient struct { - grpc.ClientStream -} - -func (x *dBReverseIteratorClient) Recv() (*Iterator, error) { - m := new(Iterator) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func (c *dBClient) Stats(ctx context.Context, in *Nothing, opts ...grpc.CallOption) (*Stats, error) { - out := new(Stats) - err := c.cc.Invoke(ctx, "/protodb.DB/stats", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) BatchWrite(ctx context.Context, in *Batch, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/batchWrite", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *dBClient) BatchWriteSync(ctx context.Context, in *Batch, opts ...grpc.CallOption) (*Nothing, error) { - out := new(Nothing) - err := c.cc.Invoke(ctx, "/protodb.DB/batchWriteSync", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// DBServer is the server API for DB service. -type DBServer interface { - Init(context.Context, *Init) (*Entity, error) - Get(context.Context, *Entity) (*Entity, error) - GetStream(DB_GetStreamServer) error - Has(context.Context, *Entity) (*Entity, error) - Set(context.Context, *Entity) (*Nothing, error) - SetSync(context.Context, *Entity) (*Nothing, error) - Delete(context.Context, *Entity) (*Nothing, error) - DeleteSync(context.Context, *Entity) (*Nothing, error) - Iterator(*Entity, DB_IteratorServer) error - ReverseIterator(*Entity, DB_ReverseIteratorServer) error - // rpc print(Nothing) returns (Entity) {} - Stats(context.Context, *Nothing) (*Stats, error) - BatchWrite(context.Context, *Batch) (*Nothing, error) - BatchWriteSync(context.Context, *Batch) (*Nothing, error) -} - -// UnimplementedDBServer can be embedded to have forward compatible implementations. -type UnimplementedDBServer struct { -} - -func (*UnimplementedDBServer) Init(ctx context.Context, req *Init) (*Entity, error) { - return nil, status.Errorf(codes.Unimplemented, "method Init not implemented") -} -func (*UnimplementedDBServer) Get(ctx context.Context, req *Entity) (*Entity, error) { - return nil, status.Errorf(codes.Unimplemented, "method Get not implemented") -} -func (*UnimplementedDBServer) GetStream(srv DB_GetStreamServer) error { - return status.Errorf(codes.Unimplemented, "method GetStream not implemented") -} -func (*UnimplementedDBServer) Has(ctx context.Context, req *Entity) (*Entity, error) { - return nil, status.Errorf(codes.Unimplemented, "method Has not implemented") -} -func (*UnimplementedDBServer) Set(ctx context.Context, req *Entity) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method Set not implemented") -} -func (*UnimplementedDBServer) SetSync(ctx context.Context, req *Entity) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetSync not implemented") -} -func (*UnimplementedDBServer) Delete(ctx context.Context, req *Entity) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") -} -func (*UnimplementedDBServer) DeleteSync(ctx context.Context, req *Entity) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteSync not implemented") -} -func (*UnimplementedDBServer) Iterator(req *Entity, srv DB_IteratorServer) error { - return status.Errorf(codes.Unimplemented, "method Iterator not implemented") -} -func (*UnimplementedDBServer) ReverseIterator(req *Entity, srv DB_ReverseIteratorServer) error { - return status.Errorf(codes.Unimplemented, "method ReverseIterator not implemented") -} -func (*UnimplementedDBServer) Stats(ctx context.Context, req *Nothing) (*Stats, error) { - return nil, status.Errorf(codes.Unimplemented, "method Stats not implemented") -} -func (*UnimplementedDBServer) BatchWrite(ctx context.Context, req *Batch) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method BatchWrite not implemented") -} -func (*UnimplementedDBServer) BatchWriteSync(ctx context.Context, req *Batch) (*Nothing, error) { - return nil, status.Errorf(codes.Unimplemented, "method BatchWriteSync not implemented") -} - -func RegisterDBServer(s *grpc.Server, srv DBServer) { - s.RegisterService(&_DB_serviceDesc, srv) -} - -func _DB_Init_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Init) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Init(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Init", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Init(ctx, req.(*Init)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Get(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Get", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Get(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_GetStream_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(DBServer).GetStream(&dBGetStreamServer{stream}) -} - -type DB_GetStreamServer interface { - Send(*Entity) error - Recv() (*Entity, error) - grpc.ServerStream -} - -type dBGetStreamServer struct { - grpc.ServerStream -} - -func (x *dBGetStreamServer) Send(m *Entity) error { - return x.ServerStream.SendMsg(m) -} - -func (x *dBGetStreamServer) Recv() (*Entity, error) { - m := new(Entity) - if err := x.ServerStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} - -func _DB_Has_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Has(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Has", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Has(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_Set_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Set(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Set", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Set(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_SetSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).SetSync(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/SetSync", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).SetSync(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Delete(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Delete", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Delete(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_DeleteSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Entity) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).DeleteSync(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/DeleteSync", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).DeleteSync(ctx, req.(*Entity)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_Iterator_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(Entity) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(DBServer).Iterator(m, &dBIteratorServer{stream}) -} - -type DB_IteratorServer interface { - Send(*Iterator) error - grpc.ServerStream -} - -type dBIteratorServer struct { - grpc.ServerStream -} - -func (x *dBIteratorServer) Send(m *Iterator) error { - return x.ServerStream.SendMsg(m) -} - -func _DB_ReverseIterator_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(Entity) - if err := stream.RecvMsg(m); err != nil { - return err - } - return srv.(DBServer).ReverseIterator(m, &dBReverseIteratorServer{stream}) -} - -type DB_ReverseIteratorServer interface { - Send(*Iterator) error - grpc.ServerStream -} - -type dBReverseIteratorServer struct { - grpc.ServerStream -} - -func (x *dBReverseIteratorServer) Send(m *Iterator) error { - return x.ServerStream.SendMsg(m) -} - -func _DB_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Nothing) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).Stats(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/Stats", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).Stats(ctx, req.(*Nothing)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_BatchWrite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Batch) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).BatchWrite(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/BatchWrite", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).BatchWrite(ctx, req.(*Batch)) - } - return interceptor(ctx, in, info, handler) -} - -func _DB_BatchWriteSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Batch) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DBServer).BatchWriteSync(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/protodb.DB/BatchWriteSync", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DBServer).BatchWriteSync(ctx, req.(*Batch)) - } - return interceptor(ctx, in, info, handler) -} - -var _DB_serviceDesc = grpc.ServiceDesc{ - ServiceName: "protodb.DB", - HandlerType: (*DBServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "init", - Handler: _DB_Init_Handler, - }, - { - MethodName: "get", - Handler: _DB_Get_Handler, - }, - { - MethodName: "has", - Handler: _DB_Has_Handler, - }, - { - MethodName: "set", - Handler: _DB_Set_Handler, - }, - { - MethodName: "setSync", - Handler: _DB_SetSync_Handler, - }, - { - MethodName: "delete", - Handler: _DB_Delete_Handler, - }, - { - MethodName: "deleteSync", - Handler: _DB_DeleteSync_Handler, - }, - { - MethodName: "stats", - Handler: _DB_Stats_Handler, - }, - { - MethodName: "batchWrite", - Handler: _DB_BatchWrite_Handler, - }, - { - MethodName: "batchWriteSync", - Handler: _DB_BatchWriteSync_Handler, - }, - }, - Streams: []grpc.StreamDesc{ - { - StreamName: "getStream", - Handler: _DB_GetStream_Handler, - ServerStreams: true, - ClientStreams: true, - }, - { - StreamName: "iterator", - Handler: _DB_Iterator_Handler, - ServerStreams: true, - }, - { - StreamName: "reverseIterator", - Handler: _DB_ReverseIterator_Handler, - ServerStreams: true, - }, - }, - Metadata: "remotedb/proto/defs.proto", -} - -func NewPopulatedBatch(r randyDefs, easy bool) *Batch { - this := &Batch{} - if r.Intn(5) != 0 { - v1 := r.Intn(5) - this.Ops = make([]*Operation, v1) - for i := 0; i < v1; i++ { - this.Ops[i] = NewPopulatedOperation(r, easy) - } - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 2) - } - return this -} - -func NewPopulatedOperation(r randyDefs, easy bool) *Operation { - this := &Operation{} - if r.Intn(5) != 0 { - this.Entity = NewPopulatedEntity(r, easy) - } - this.Type = Operation_Type([]int32{0, 1}[r.Intn(2)]) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 3) - } - return this -} - -func NewPopulatedEntity(r randyDefs, easy bool) *Entity { - this := &Entity{} - this.Id = int32(r.Int31()) - if r.Intn(2) == 0 { - this.Id *= -1 - } - v2 := r.Intn(100) - this.Key = make([]byte, v2) - for i := 0; i < v2; i++ { - this.Key[i] = byte(r.Intn(256)) - } - v3 := r.Intn(100) - this.Value = make([]byte, v3) - for i := 0; i < v3; i++ { - this.Value[i] = byte(r.Intn(256)) - } - this.Exists = bool(bool(r.Intn(2) == 0)) - v4 := r.Intn(100) - this.Start = make([]byte, v4) - for i := 0; i < v4; i++ { - this.Start[i] = byte(r.Intn(256)) - } - v5 := r.Intn(100) - this.End = make([]byte, v5) - for i := 0; i < v5; i++ { - this.End[i] = byte(r.Intn(256)) - } - this.Err = string(randStringDefs(r)) - this.CreatedAt = int64(r.Int63()) - if r.Intn(2) == 0 { - this.CreatedAt *= -1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 9) - } - return this -} - -func NewPopulatedNothing(r randyDefs, easy bool) *Nothing { - this := &Nothing{} - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 1) - } - return this -} - -func NewPopulatedDomain(r randyDefs, easy bool) *Domain { - this := &Domain{} - v6 := r.Intn(100) - this.Start = make([]byte, v6) - for i := 0; i < v6; i++ { - this.Start[i] = byte(r.Intn(256)) - } - v7 := r.Intn(100) - this.End = make([]byte, v7) - for i := 0; i < v7; i++ { - this.End[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 3) - } - return this -} - -func NewPopulatedIterator(r randyDefs, easy bool) *Iterator { - this := &Iterator{} - if r.Intn(5) != 0 { - this.Domain = NewPopulatedDomain(r, easy) - } - this.Valid = bool(bool(r.Intn(2) == 0)) - v8 := r.Intn(100) - this.Key = make([]byte, v8) - for i := 0; i < v8; i++ { - this.Key[i] = byte(r.Intn(256)) - } - v9 := r.Intn(100) - this.Value = make([]byte, v9) - for i := 0; i < v9; i++ { - this.Value[i] = byte(r.Intn(256)) - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 5) - } - return this -} - -func NewPopulatedStats(r randyDefs, easy bool) *Stats { - this := &Stats{} - if r.Intn(5) != 0 { - v10 := r.Intn(10) - this.Data = make(map[string]string) - for i := 0; i < v10; i++ { - this.Data[randStringDefs(r)] = randStringDefs(r) - } - } - this.TimeAt = int64(r.Int63()) - if r.Intn(2) == 0 { - this.TimeAt *= -1 - } - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 3) - } - return this -} - -func NewPopulatedInit(r randyDefs, easy bool) *Init { - this := &Init{} - this.Type = string(randStringDefs(r)) - this.Name = string(randStringDefs(r)) - this.Dir = string(randStringDefs(r)) - if !easy && r.Intn(10) != 0 { - this.XXX_unrecognized = randUnrecognizedDefs(r, 4) - } - return this -} - -type randyDefs interface { - Float32() float32 - Float64() float64 - Int63() int64 - Int31() int32 - Uint32() uint32 - Intn(n int) int -} - -func randUTF8RuneDefs(r randyDefs) rune { - ru := r.Intn(62) - if ru < 10 { - return rune(ru + 48) - } else if ru < 36 { - return rune(ru + 55) - } - return rune(ru + 61) -} -func randStringDefs(r randyDefs) string { - v11 := r.Intn(100) - tmps := make([]rune, v11) - for i := 0; i < v11; i++ { - tmps[i] = randUTF8RuneDefs(r) - } - return string(tmps) -} -func randUnrecognizedDefs(r randyDefs, maxFieldNumber int) (dAtA []byte) { - l := r.Intn(5) - for i := 0; i < l; i++ { - wire := r.Intn(4) - if wire == 3 { - wire = 5 - } - fieldNumber := maxFieldNumber + r.Intn(100) - dAtA = randFieldDefs(dAtA, r, fieldNumber, wire) - } - return dAtA -} -func randFieldDefs(dAtA []byte, r randyDefs, fieldNumber int, wire int) []byte { - key := uint32(fieldNumber)<<3 | uint32(wire) - switch wire { - case 0: - dAtA = encodeVarintPopulateDefs(dAtA, uint64(key)) - v12 := r.Int63() - if r.Intn(2) == 0 { - v12 *= -1 - } - dAtA = encodeVarintPopulateDefs(dAtA, uint64(v12)) - case 1: - dAtA = encodeVarintPopulateDefs(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - case 2: - dAtA = encodeVarintPopulateDefs(dAtA, uint64(key)) - ll := r.Intn(100) - dAtA = encodeVarintPopulateDefs(dAtA, uint64(ll)) - for j := 0; j < ll; j++ { - dAtA = append(dAtA, byte(r.Intn(256))) - } - default: - dAtA = encodeVarintPopulateDefs(dAtA, uint64(key)) - dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) - } - return dAtA -} -func encodeVarintPopulateDefs(dAtA []byte, v uint64) []byte { - for v >= 1<<7 { - dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80)) - v >>= 7 - } - dAtA = append(dAtA, uint8(v)) - return dAtA -} diff --git a/remotedb/proto/defs.proto b/remotedb/proto/defs.proto deleted file mode 100644 index 136e75f..0000000 --- a/remotedb/proto/defs.proto +++ /dev/null @@ -1,78 +0,0 @@ -syntax = "proto3"; - -package protodb; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -// Generate tests -option (gogoproto.populate_all) = true; -option (gogoproto.equal_all) = true; -option (gogoproto.testgen_all) = true; - -message Batch { - repeated Operation ops = 1; -} - -message Operation { - Entity entity = 1; - enum Type { - SET = 0; - DELETE = 1; - } - Type type = 2; -} - -message Entity { - int32 id = 1; - bytes key = 2; - bytes value = 3; - bool exists = 4; - bytes start = 5; - bytes end = 6; - string err = 7; - int64 created_at = 8; -} - -message Nothing { -} - -message Domain { - bytes start = 1; - bytes end = 2; -} - -message Iterator { - Domain domain = 1; - bool valid = 2; - bytes key = 3; - bytes value = 4; -} - -message Stats { - map data = 1; - int64 time_at = 2; -} - -message Init { - string Type = 1; - string Name = 2; - string Dir = 3; -} - -service DB { - rpc init(Init) returns (Entity) {} - rpc get(Entity) returns (Entity) {} - rpc getStream(stream Entity) returns (stream Entity) {} - - rpc has(Entity) returns (Entity) {} - rpc set(Entity) returns (Nothing) {} - rpc setSync(Entity) returns (Nothing) {} - rpc delete(Entity) returns (Nothing) {} - rpc deleteSync(Entity) returns (Nothing) {} - rpc iterator(Entity) returns (stream Iterator) {} - rpc reverseIterator(Entity) returns (stream Iterator) {} - // rpc print(Nothing) returns (Entity) {} - rpc stats(Nothing) returns (Stats) {} - rpc batchWrite(Batch) returns (Nothing) {} - rpc batchWriteSync(Batch) returns (Nothing) {} -} diff --git a/remotedb/proto/defspb_test.go b/remotedb/proto/defspb_test.go deleted file mode 100644 index fd97a7b..0000000 --- a/remotedb/proto/defspb_test.go +++ /dev/null @@ -1,639 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: remotedb/proto/defs.proto - -package protodb - -import ( - fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb" - github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" - proto "github.com/gogo/protobuf/proto" - math "math" - math_rand "math/rand" - testing "testing" - time "time" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -func TestBatchProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedBatch(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Batch{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestOperationProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOperation(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Operation{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestEntityProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedEntity(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Entity{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestNothingProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNothing(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nothing{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestDomainProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDomain(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Domain{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestIteratorProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedIterator(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Iterator{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestStatsProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStats(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Stats{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestInitProto(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedInit(popr, false) - dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Init{} - if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - littlefuzz := make([]byte, len(dAtA)) - copy(littlefuzz, dAtA) - for i := range dAtA { - dAtA[i] = byte(popr.Intn(256)) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } - if len(littlefuzz) > 0 { - fuzzamount := 100 - for i := 0; i < fuzzamount; i++ { - littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) - littlefuzz = append(littlefuzz, byte(popr.Intn(256))) - } - // shouldn't panic - _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) - } -} - -func TestBatchJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedBatch(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Batch{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestOperationJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOperation(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Operation{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestEntityJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedEntity(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Entity{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestNothingJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNothing(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Nothing{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestDomainJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDomain(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Domain{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestIteratorJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedIterator(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Iterator{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestStatsJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStats(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Stats{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestInitJSON(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedInit(popr, true) - marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} - jsondata, err := marshaler.MarshalToString(p) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - msg := &Init{} - err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) - if err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) - } -} -func TestBatchProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedBatch(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Batch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestBatchProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedBatch(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Batch{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOperationProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOperation(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Operation{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestOperationProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedOperation(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Operation{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestEntityProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedEntity(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Entity{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestEntityProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedEntity(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Entity{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNothingProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNothing(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Nothing{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestNothingProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedNothing(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Nothing{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDomainProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDomain(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Domain{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestDomainProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedDomain(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Domain{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestIteratorProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedIterator(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Iterator{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestIteratorProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedIterator(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Iterator{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStatsProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStats(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Stats{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestStatsProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedStats(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Stats{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestInitProtoText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedInit(popr, true) - dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) - msg := &Init{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -func TestInitProtoCompactText(t *testing.T) { - seed := time.Now().UnixNano() - popr := math_rand.New(math_rand.NewSource(seed)) - p := NewPopulatedInit(popr, true) - dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) - msg := &Init{} - if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { - t.Fatalf("seed = %d, err = %v", seed, err) - } - if !p.Equal(msg) { - t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) - } -} - -//These tests are generated by github.com/gogo/protobuf/plugin/testgen diff --git a/remotedb/remotedb.go b/remotedb/remotedb.go deleted file mode 100644 index 7b1c8da..0000000 --- a/remotedb/remotedb.go +++ /dev/null @@ -1,123 +0,0 @@ -package remotedb - -import ( - "context" - "errors" - "fmt" - - db "github.com/cometbft/cometbft-db" - "github.com/cometbft/cometbft-db/remotedb/grpcdb" - protodb "github.com/cometbft/cometbft-db/remotedb/proto" -) - -type RemoteDB struct { - ctx context.Context - dc protodb.DBClient -} - -func NewRemoteDB(serverAddr string, serverKey string) (*RemoteDB, error) { - return newRemoteDB(grpcdb.NewClient(serverAddr, serverKey)) -} - -func newRemoteDB(gdc protodb.DBClient, err error) (*RemoteDB, error) { - if err != nil { - return nil, err - } - return &RemoteDB{dc: gdc, ctx: context.Background()}, nil -} - -type Init struct { - Dir string - Name string - Type string -} - -func (rd *RemoteDB) InitRemote(in *Init) error { - _, err := rd.dc.Init(rd.ctx, &protodb.Init{Dir: in.Dir, Type: in.Type, Name: in.Name}) - return err -} - -var _ db.DB = (*RemoteDB)(nil) - -// Close is a noop currently -func (rd *RemoteDB) Close() error { - return nil -} - -func (rd *RemoteDB) Delete(key []byte) error { - if _, err := rd.dc.Delete(rd.ctx, &protodb.Entity{Key: key}); err != nil { - return fmt.Errorf("remoteDB.Delete: %w", err) - } - return nil -} - -func (rd *RemoteDB) DeleteSync(key []byte) error { - if _, err := rd.dc.DeleteSync(rd.ctx, &protodb.Entity{Key: key}); err != nil { - return fmt.Errorf("remoteDB.DeleteSync: %w", err) - } - return nil -} - -func (rd *RemoteDB) Set(key, value []byte) error { - if _, err := rd.dc.Set(rd.ctx, &protodb.Entity{Key: key, Value: value}); err != nil { - return fmt.Errorf("remoteDB.Set: %w", err) - } - return nil -} - -func (rd *RemoteDB) SetSync(key, value []byte) error { - if _, err := rd.dc.SetSync(rd.ctx, &protodb.Entity{Key: key, Value: value}); err != nil { - return fmt.Errorf("remoteDB.SetSync: %w", err) - } - return nil -} - -func (rd *RemoteDB) Get(key []byte) ([]byte, error) { - res, err := rd.dc.Get(rd.ctx, &protodb.Entity{Key: key}) - if err != nil { - return nil, fmt.Errorf("remoteDB.Get error: %w", err) - } - return res.Value, nil -} - -func (rd *RemoteDB) Has(key []byte) (bool, error) { - res, err := rd.dc.Has(rd.ctx, &protodb.Entity{Key: key}) - if err != nil { - return false, err - } - return res.Exists, nil -} - -func (rd *RemoteDB) ReverseIterator(start, end []byte) (db.Iterator, error) { - dic, err := rd.dc.ReverseIterator(rd.ctx, &protodb.Entity{Start: start, End: end}) - if err != nil { - return nil, fmt.Errorf("RemoteDB.Iterator error: %w", err) - } - return makeReverseIterator(dic), nil -} - -func (rd *RemoteDB) NewBatch() db.Batch { - return newBatch(rd) -} - -// TODO: Implement Print when db.DB implements a method -// to print to a string and not db.Print to stdout. -func (rd *RemoteDB) Print() error { - return errors.New("remoteDB.Print: unimplemented") -} - -func (rd *RemoteDB) Stats() map[string]string { - stats, err := rd.dc.Stats(rd.ctx, &protodb.Nothing{}) - if err != nil || stats == nil { - return nil - } - return stats.Data -} - -func (rd *RemoteDB) Iterator(start, end []byte) (db.Iterator, error) { - dic, err := rd.dc.Iterator(rd.ctx, &protodb.Entity{Start: start, End: end}) - if err != nil { - return nil, fmt.Errorf("RemoteDB.Iterator error: %w", err) - } - return makeIterator(dic), nil -} diff --git a/remotedb/remotedb_test.go b/remotedb/remotedb_test.go deleted file mode 100644 index dd72766..0000000 --- a/remotedb/remotedb_test.go +++ /dev/null @@ -1,167 +0,0 @@ -package remotedb_test - -import ( - "net" - "os" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/cometbft/cometbft-db/remotedb" - "github.com/cometbft/cometbft-db/remotedb/grpcdb" -) - -func TestRemoteDB(t *testing.T) { - cert := "test.crt" - key := "test.key" - ln, err := net.Listen("tcp", "localhost:0") - require.Nil(t, err, "expecting a port to have been assigned on which we can listen") - srv, err := grpcdb.NewServer(cert, key) - require.Nil(t, err) - defer srv.Stop() - go func() { - if err := srv.Serve(ln); err != nil { - panic(err) - } - }() - - client, err := remotedb.NewRemoteDB(ln.Addr().String(), cert) - require.Nil(t, err, "expecting a successful client creation") - dbName := "test-remote-db" - require.Nil(t, client.InitRemote(&remotedb.Init{Name: dbName, Type: "goleveldb"})) - defer os.RemoveAll(dbName + ".db") - - k1 := []byte("key-1") - v1, err := client.Get(k1) - require.NoError(t, err) - require.Equal(t, 0, len(v1), "expecting no key1 to have been stored, got %X (%s)", v1, v1) - vv1 := []byte("value-1") - err = client.Set(k1, vv1) - require.NoError(t, err) - - gv1, err := client.Get(k1) - require.NoError(t, err) - require.Equal(t, gv1, vv1) - - // Simple iteration - itr, err := client.Iterator(nil, nil) - require.NoError(t, err) - assert.True(t, itr.Valid()) - - key1 := itr.Key() - value := itr.Value() - - require.Equal(t, key1, []byte("key-1")) - require.Equal(t, value, []byte("value-1")) - itr.Close() - - // Set some more keys - k2 := []byte("key-2") - v2 := []byte("value-2") - err = client.SetSync(k2, v2) - require.NoError(t, err) - has, err := client.Has(k2) - require.NoError(t, err) - require.True(t, has) - gv2, err := client.Get(k2) - require.NoError(t, err) - require.Equal(t, gv2, v2) - - // More iteration - itr, err = client.Iterator(nil, nil) - require.NoError(t, err) - - key1 = itr.Key() - value = itr.Value() - - require.Equal(t, key1, []byte("key-1")) - require.Equal(t, value, []byte("value-1")) - itr.Next() - - key1 = itr.Key() - - value = itr.Value() - require.Equal(t, key1, []byte("key-2")) - require.Equal(t, value, []byte("value-2")) - itr.Close() - - // Deletion - err = client.Delete(k1) - require.NoError(t, err) - err = client.DeleteSync(k2) - require.NoError(t, err) - gv1, err = client.Get(k1) - require.NoError(t, err) - gv2, err = client.Get(k2) - require.NoError(t, err) - require.Equal(t, len(gv2), 0, "after deletion, not expecting the key to exist anymore") - require.Equal(t, len(gv1), 0, "after deletion, not expecting the key to exist anymore") - - // Batch tests - set - k3 := []byte("key-3") - k4 := []byte("key-4") - k5 := []byte("key-5") - v3 := []byte("value-3") - v4 := []byte("value-4") - v5 := []byte("value-5") - bat := client.NewBatch() - err = bat.Set(k3, v3) - require.NoError(t, err) - err = bat.Set(k4, v4) - require.NoError(t, err) - - rv3, err := client.Get(k3) - require.NoError(t, err) - require.Equal(t, 0, len(rv3), "expecting no k3 to have been stored") - - rv4, err := client.Get(k4) - require.NoError(t, err) - require.Equal(t, 0, len(rv4), "expecting no k4 to have been stored") - err = bat.Write() - require.NoError(t, err) - - rv3, err = client.Get(k3) - require.NoError(t, err) - require.Equal(t, rv3, v3, "expecting k3 to have been stored") - - rv4, err = client.Get(k4) - require.NoError(t, err) - require.Equal(t, rv4, v4, "expecting k4 to have been stored") - - // Batch tests - deletion - bat = client.NewBatch() - err = bat.Delete(k4) - require.NoError(t, err) - err = bat.Delete(k3) - require.NoError(t, err) - err = bat.WriteSync() - require.NoError(t, err) - - rv3, err = client.Get(k3) - require.NoError(t, err) - require.Equal(t, 0, len(rv3), "expecting k3 to have been deleted") - - rv4, err = client.Get(k4) - require.NoError(t, err) - require.Equal(t, 0, len(rv4), "expecting k4 to have been deleted") - - // Batch tests - set and delete - bat = client.NewBatch() - err = bat.Set(k4, v4) - require.NoError(t, err) - err = bat.Set(k5, v5) - require.NoError(t, err) - err = bat.Delete(k4) - require.NoError(t, err) - err = bat.WriteSync() - require.NoError(t, err) - - rv4, err = client.Get(k4) - require.NoError(t, err) - require.Equal(t, 0, len(rv4), "expecting k4 to have been deleted") - - rv5, err := client.Get(k5) - require.NoError(t, err) - require.Equal(t, rv5, v5, "expecting k5 to have been stored") -} diff --git a/remotedb/test.crt b/remotedb/test.crt deleted file mode 100644 index db4731a..0000000 --- a/remotedb/test.crt +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEOTCCAiGgAwIBAgIRAKFDMVd84l9c+H7Igu+IeyAwDQYJKoZIhvcNAQELBQAw -FzEVMBMGA1UEAxMMY29tZXRiZnQuY29tMB4XDTIzMDExMjIwNDgxMVoXDTI0MDcx -MjIwNTgwN1owEzERMA8GA1UEAxMIcmVtb3RlZGIwggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQCzY2p/uGtME0w4suqYdMtXQU81ZX7A7ko6mP0N3ZKuji3R -XY9SXGKeJW46JbNIgbs5B8CHI4OiYdarZKF6gBs5cPAnKbsPW5MnNxWNXStm5c/9 -rhoDi9dUUEpf8JFNb+IqJPsW7iURI8exqQr2Pb1oZPPk2GhgYfauu1lqyDAf88T2 -GvdGYsmR8mNYW6NfrL4zqGeGnuq6sWxKHQWuh95gpSYnxNzmVVKIuttOoUC1FK6K -U+vdbVxkbeYKIK9a/yJOyp6zTaIZqUa6A5HhVWHdG6e9RY20sssamSPUJ+kmmHrp -eCRiE7n8lk0G/HzzO5znQB99RnzijfaarKDYy3a1AgMBAAGjgYMwgYAwDgYDVR0P -AQH/BAQDAgO4MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4E -FgQU3V11wxMnDxNTnuNgA8DS6hQnntYwHwYDVR0jBBgwFoAUXBFqyY+zUYMwcG4B -CxPPklt+9QQwDwYDVR0RBAgwBocEfwAAATANBgkqhkiG9w0BAQsFAAOCAgEASPz4 -KAa4K/wHWFAi/KKEAIgnsZD+4VJtW3Blkv+6XZQwSzX7GeW2Cs6Ze5rqokC2Fk1n -gp76sZ9TMvdqFa0dI6ZU0s/eGIvKdTR5JdoV1MqL+at3vwC7JrvV15WtNy6itMQH -YxdOmTCyi/+1UFW3GVtuoDj9AtdsulVWGQqfH1VYVOGBGOMCzAyjO9RYzg1dyCJR -plmX36B1UaJXRlD24FbnusuRWbBwnW/OeJZnD+THTB8Jn46tgS4AjRZ4Key9kAKc -BLKNmgCLjH3RdWhhMM5YAKpbDpN3TzaY1GoZgmQWF2WvyVJriAR3aJ9C+eDl2sSi -q1+gcYlLJDXcC9t5cDbkyp2sM3T7VNBOrsyO2Xg4Mkn5EYlLM7zd8TFNiSF4xJrF -EDYt/DQSt1lmz1dZqOyflapJh7nRSxNHPVlBPT2HCNJgVf0RO3zc7yBDicOlkEql -l1aeMclKPvUQMr7+WoRyUcz9RHIlvwlGBMsZAADvhpJ1yUgDAZupBC0HxkYYHEOm -MM122yfAf0NGU4oroTWiUkB/BFmFO3bmzd4CWe0e0WMJObQ5BpHUi5iOERMTuXGs -gPSJ2tgoOVHRUPR17mTDqpZWJWBKb66UCnxtkGoJxuP4JYRDmH2x4naHs/u7A6h0 -KoZ/512EeDozQpqb5bJK+dqTIEc2Wkl7A9CIOjk= ------END CERTIFICATE----- diff --git a/remotedb/test.key b/remotedb/test.key deleted file mode 100644 index 4eb99d1..0000000 --- a/remotedb/test.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEAs2Nqf7hrTBNMOLLqmHTLV0FPNWV+wO5KOpj9Dd2Sro4t0V2P -UlxiniVuOiWzSIG7OQfAhyODomHWq2SheoAbOXDwJym7D1uTJzcVjV0rZuXP/a4a -A4vXVFBKX/CRTW/iKiT7Fu4lESPHsakK9j29aGTz5NhoYGH2rrtZasgwH/PE9hr3 -RmLJkfJjWFujX6y+M6hnhp7qurFsSh0FrofeYKUmJ8Tc5lVSiLrbTqFAtRSuilPr -3W1cZG3mCiCvWv8iTsqes02iGalGugOR4VVh3RunvUWNtLLLGpkj1CfpJph66Xgk -YhO5/JZNBvx88zuc50AffUZ84o32mqyg2Mt2tQIDAQABAoIBACxgJ3Q41rIXA//y -on3cRoDrMwDufpCTYeFk/xRy/1oW6dak4lNpbyvX7pCLyvHgxcOx2zqS2nlM4qG7 -XwbCsflfqsjFVfTSnnBQ/A/gQGBP8Ue7zcuayEWfJwbcp9UUHEp4o3RkrN60jy2v -t3p6g2RTtNGjhw5wrWlEBzaXFvCQHsUbDAoTniEp51Rfw4uo1gyHT78Brk5FrNSp -ulG8BHFVGC/IMOYHVajMvXvRqlP2oov5prArNj3qU/FDKe7ZAeRDMBsvg339lEOj -39RHJR0waVFJsw+AgyTLT3+TWh2Eb9UMOkG8fLcXb5kTAKY+36Ijn1nTtIt2tiOK -cU/nDfECgYEAzSWF196Xtyin8Rcw3DLcLPYnYrtmZFl69Fq8ZefpnIZtZQg04Ors -fFrFxGgjrwB269r9ZkYtd10z/RE3B1IRuOwu1U6Px7Dp+BbhllanLcg5FK5ggD2h -xjLD9kcDo1b78sY7h3gGnyBAj5oxb8TEQbjvdCc6s6VXH0Woh9DVfBMCgYEA39tK -oqP+OxNznvAkpwi+GMRFxHULN10LV58u3iBWBwa5NvjGOwwEieBa73pOOeIUFqaO -IF/zrpBYIsXkHFl6IJnsH9OJIgMqBGa/JAbgFI7UMmROh4pWhRslQ5zjMCHfZnLC -Fmi2iGRixbD33rynZMQF/KrTaDvWHPclf2GlixcCgYEAi7pJBZWJRKmeaenfz7uc -l8s5XFhED4ma46CBve9OANzW2f/S9HdOiAzTs0kzNNleJptMCUM3aJvE81OsZYIS -rB/CbmtKJztqwR3knR98UwSTTHDRLcfMzlB5hN8trS1sAhnfJhAsgmnXT3g4v+YH -vrQV9MlbhEzToGsztP4ayp0CgYEAqUC1gpj5rJL9dWteWwiKKlGj6nEQZPCtlbde -iUXrpW5Y9Y5M2vIwMEr4ll5j7PHZfHK7vRCvPwoWCVyUJzcj1qhqVnnrElNQHnnN -BSFJpWGEYQFkOqjG1+b5WtCxGYBS17PmuWi8sg0sfQpbrwX2joKDgFFsfD/ZmJbo -vBIJR0sCgYAt9uHwN4QdK3POdVkn24zKwOBkx4GEhoQjh4vjMmE4hi8ZxxIFur5T -nM1LtjLgbV8TMX67vZsk0yksrgW0KEnJXXVNaFG7ZtoFBGhV7UMDD7aFUFZyoFhE -AYncjzZl+m34vTc1doBbZt768mMA84pxZgvIqvPkU2KQDYyxIbtvbA== ------END RSA PRIVATE KEY-----