Skip to content

Commit 4b6e49f

Browse files
committed
feat(v1): expose filer grpc client
1 parent 3af5274 commit 4b6e49f

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import (
1919

2020
func main() {
2121
listener := &example.LogFileEventHandler{}
22-
if err := seawolf.Run("localhost:18888", seawolf.WithListener(listener)); err != nil {
22+
wolf := seawolf.New("localhost:18888", seawolf.WithListener(listener))
23+
if err := wolf.Run(); err != nil {
2324
panic(err)
2425
}
2526
}

v1/seawolf.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
)
1212

1313
type SeaWolf struct {
14+
client filer_pb.SeaweedFilerClient
1415
Listeners []internal.FileListener
1516
}
1617

@@ -22,26 +23,30 @@ func WithListener(listener internal.FileListener) Option {
2223
}
2324
}
2425

25-
func Run(address string, opts ...Option) error {
26+
func New(address string, opts ...Option) *SeaWolf {
2627
conn, err := grpc.Dial(address, grpc.WithInsecure())
2728
if err != nil {
28-
return err
29+
panic(err)
2930
}
3031
defer conn.Close()
32+
client := filer_pb.NewSeaweedFilerClient(conn)
3133

3234
wolf := &SeaWolf{
35+
client: client,
3336
Listeners: make([]internal.FileListener, 0),
3437
}
3538

3639
for _, opt := range opts {
3740
opt(wolf)
3841
}
3942

40-
client := filer_pb.NewSeaweedFilerClient(conn)
43+
return wolf
44+
}
4145

46+
func (wolf *SeaWolf) Run() error {
4247
fmt.Println("Listening file metadata...")
4348
for {
44-
req, err := client.SubscribeMetadata(context.TODO(), &filer_pb.SubscribeMetadataRequest{
49+
req, err := wolf.client.SubscribeMetadata(context.TODO(), &filer_pb.SubscribeMetadataRequest{
4550
SinceNs: time.Now().UnixNano(),
4651
})
4752
if err != nil {
@@ -78,3 +83,7 @@ func Run(address string, opts ...Option) error {
7883
}
7984
}
8085
}
86+
87+
func (wolf *SeaWolf) Client() filer_pb.SeaweedFilerClient {
88+
return wolf.client
89+
}

0 commit comments

Comments
 (0)