forked from couchbase/go-couchbase
/
hello_observe.go
55 lines (44 loc) · 1.24 KB
/
hello_observe.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package main
import (
"flag"
"fmt"
"log"
"time"
"github.com/couchbaselabs/go-couchbase"
)
var poolName = flag.String("pool", "default", "Pool name")
var writeFlag = flag.Bool("write", false, "If true, will write a value to the key")
func main() {
flag.Parse()
if len(flag.Args()) < 3 {
log.Fatalf("Usage: hello_observe [-pool poolname] [-write] server bucket key")
}
c, err := couchbase.Connect(flag.Arg(0))
if err != nil {
log.Fatalf("Error connecting: %v", err)
}
fmt.Printf("Connected to ver=%s\n", c.Info.ImplementationVersion)
pool, err := c.GetPool(*poolName)
if err != nil {
log.Fatalf("Can't get pool %q: %v", *poolName, err)
}
bucket, err := pool.GetBucket(flag.Arg(1))
if err != nil {
log.Fatalf("Can't get bucket %q: %v", flag.Arg(1), err)
}
key := flag.Arg(2)
result, err := bucket.Observe(key)
if err != nil {
log.Fatalf("Observe returned error %v", err)
}
log.Printf("Observe result: %+v", result)
if *writeFlag {
log.Printf("Now writing to key %q with persistence...", key)
start := time.Now()
err = bucket.Write(key, 0, 0, "observe test", couchbase.Persist)
if err != nil {
log.Fatalf("Write returned error %v", err)
}
log.Printf("Write with persistence took %s", time.Since(start))
}
}