- package grpcdb_test
-
- import (
- "bytes"
- "context"
- "log"
-
- grpcdb "github.com/tendermint/tmlibs/grpcdb"
- protodb "github.com/tendermint/tmlibs/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)
- }
- }
|