...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package longrunning
16
17 import (
18 "context"
19 "fmt"
20 "time"
21
22 pb "cloud.google.com/go/longrunning/autogen/longrunningpb"
23 "google.golang.org/protobuf/types/known/anypb"
24 "google.golang.org/protobuf/types/known/durationpb"
25 "google.golang.org/protobuf/types/known/timestamppb"
26 )
27
28 func bestMomentInHistory() (*Operation, error) {
29 t, err := time.Parse("2006-01-02 15:04:05.999999999 -0700 MST", "2009-11-10 23:00:00 +0000 UTC")
30 if err != nil {
31 return nil, err
32 }
33 resp := timestamppb.New(t)
34 respAny, err := anypb.New(resp)
35 if err != nil {
36 return nil, err
37 }
38 metaAny, err := anypb.New(durationpb.New(1 * time.Hour))
39 return &Operation{
40 proto: &pb.Operation{
41 Name: "best-moment",
42 Done: true,
43 Metadata: metaAny,
44 Result: &pb.Operation_Response{
45 Response: respAny,
46 },
47 },
48 }, err
49 }
50
51 func ExampleOperation_Wait() {
52
53 op, err := bestMomentInHistory()
54 if err != nil {
55
56 }
57 var ts timestamppb.Timestamp
58 err = op.Wait(context.TODO(), &ts)
59 if err != nil && !op.Done() {
60 fmt.Println("failed to fetch operation status", err)
61 } else if err != nil && op.Done() {
62 fmt.Println("operation completed with error", err)
63 } else {
64 fmt.Println(ts.AsTime().Format(time.RFC3339Nano))
65 }
66
67
68 }
69
70 func ExampleOperation_Metadata() {
71 op, err := bestMomentInHistory()
72 if err != nil {
73
74 }
75
76
77
78
79 var meta durationpb.Duration
80 if err := op.Metadata(&meta); err != nil {
81
82 }
83 if err := meta.CheckValid(); err == ErrNoMetadata {
84 fmt.Println("no metadata")
85 return
86 } else if err != nil {
87
88 return
89 }
90 fmt.Println(meta.AsDuration())
91
92
93
94 }
95
96 func ExampleOperation_Cancel() {
97 op, err := bestMomentInHistory()
98 if err != nil {
99
100 }
101 if err := op.Cancel(context.Background()); err != nil {
102
103 }
104 }
105
106 func ExampleOperation_Delete() {
107 op, err := bestMomentInHistory()
108 if err != nil {
109
110 }
111 if err := op.Delete(context.Background()); err != nil {
112
113 }
114 }
115
View as plain text