starpc 0.27.1 → 0.27.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/go.mod +1 -1
- package/go.sum +2 -0
- package/package.json +1 -1
- package/srpc/client-prefix.go +0 -7
- package/srpc/client-set.go +0 -17
- package/srpc/client-verbose.go +0 -18
- package/srpc/client.go +0 -16
- package/srpc/writer.go +24 -0
package/go.mod
CHANGED
|
@@ -9,7 +9,7 @@ require (
|
|
|
9
9
|
)
|
|
10
10
|
|
|
11
11
|
require (
|
|
12
|
-
github.com/aperturerobotics/util v1.14.
|
|
12
|
+
github.com/aperturerobotics/util v1.14.3 // latest
|
|
13
13
|
github.com/libp2p/go-libp2p v0.33.0 // latest
|
|
14
14
|
github.com/libp2p/go-yamux/v4 v4.0.2-0.20240206065824-7222fbc3459d // master
|
|
15
15
|
github.com/sirupsen/logrus v1.9.3 // latest
|
package/go.sum
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
github.com/aperturerobotics/util v1.14.2 h1:AghqzGgZoufsdQstY6cCssHHMB/uCv8+BjysAE55S98=
|
|
2
2
|
github.com/aperturerobotics/util v1.14.2/go.mod h1:1+G2THhT7VCmR7xeRlqDnyEtRFvONWoPft19xTHvbyk=
|
|
3
|
+
github.com/aperturerobotics/util v1.14.3 h1:tn8eET9vlFwnveFY+rt4VbbMertQW8dcd+V5fK7SyHo=
|
|
4
|
+
github.com/aperturerobotics/util v1.14.3/go.mod h1:1+G2THhT7VCmR7xeRlqDnyEtRFvONWoPft19xTHvbyk=
|
|
3
5
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
4
6
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
5
7
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
package/package.json
CHANGED
package/srpc/client-prefix.go
CHANGED
|
@@ -54,12 +54,5 @@ func (i *PrefixClient) stripCheckServiceIDPrefix(service string) (string, error)
|
|
|
54
54
|
return service, nil
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
// NewRawStream opens a new raw stream with the remote.
|
|
58
|
-
// Implements OpenStreamFunc.
|
|
59
|
-
// msgHandler must not be called concurrently.
|
|
60
|
-
func (i *PrefixClient) NewRawStream(ctx context.Context, msgHandler PacketDataHandler, closeHandler CloseHandler) (PacketWriter, error) {
|
|
61
|
-
return i.client.NewRawStream(ctx, msgHandler, closeHandler)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
57
|
// _ is a type assertion
|
|
65
58
|
var _ Client = ((*PrefixClient)(nil))
|
package/srpc/client-set.go
CHANGED
|
@@ -41,23 +41,6 @@ func (c *ClientSet) NewStream(
|
|
|
41
41
|
return strm, err
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
// NewRawStream opens a new raw stream with the remote.
|
|
45
|
-
// Implements OpenStreamFunc.
|
|
46
|
-
// msgHandler must not be called concurrently.
|
|
47
|
-
func (c *ClientSet) NewRawStream(
|
|
48
|
-
ctx context.Context,
|
|
49
|
-
msgHandler PacketDataHandler,
|
|
50
|
-
closeHandler CloseHandler,
|
|
51
|
-
) (PacketWriter, error) {
|
|
52
|
-
for _, client := range c.clients {
|
|
53
|
-
if client == nil {
|
|
54
|
-
continue
|
|
55
|
-
}
|
|
56
|
-
return client.NewRawStream(ctx, msgHandler, closeHandler)
|
|
57
|
-
}
|
|
58
|
-
return nil, ErrNoAvailableClients
|
|
59
|
-
}
|
|
60
|
-
|
|
61
44
|
// execCall executes the call conditionally retrying against subsequent client handles.
|
|
62
45
|
func (c *ClientSet) execCall(ctx context.Context, doCall func(client Client) error) error {
|
|
63
46
|
var any bool
|
package/srpc/client-verbose.go
CHANGED
|
@@ -61,21 +61,3 @@ func (c *VClient) NewStream(ctx context.Context, service, method string, firstMs
|
|
|
61
61
|
stream, err = c.client.NewStream(ctx, service, method, firstMsg)
|
|
62
62
|
return stream, err
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
// NewRawStream opens a new raw stream with the remote.
|
|
66
|
-
// Implements OpenStreamFunc.
|
|
67
|
-
// msgHandler must not be called concurrently.
|
|
68
|
-
func (c *VClient) NewRawStream(ctx context.Context, msgHandler PacketDataHandler, closeHandler CloseHandler) (writer PacketWriter, err error) {
|
|
69
|
-
t1 := time.Now()
|
|
70
|
-
|
|
71
|
-
defer func() {
|
|
72
|
-
c.le.Debugf(
|
|
73
|
-
"NewRawStream() => dur(%v) writer(%v) err(%v)",
|
|
74
|
-
time.Since(t1).String(),
|
|
75
|
-
writer,
|
|
76
|
-
err,
|
|
77
|
-
)
|
|
78
|
-
}()
|
|
79
|
-
writer, err = c.client.NewRawStream(ctx, msgHandler, closeHandler)
|
|
80
|
-
return writer, err
|
|
81
|
-
}
|
package/srpc/client.go
CHANGED
|
@@ -14,11 +14,6 @@ type Client interface {
|
|
|
14
14
|
// NewStream starts a streaming RPC with the remote & returns the stream.
|
|
15
15
|
// firstMsg is optional.
|
|
16
16
|
NewStream(ctx context.Context, service, method string, firstMsg Message) (Stream, error)
|
|
17
|
-
|
|
18
|
-
// NewRawStream opens a new raw stream with the remote.
|
|
19
|
-
// Implements OpenStreamFunc.
|
|
20
|
-
// msgHandler must not be called concurrently.
|
|
21
|
-
NewRawStream(ctx context.Context, msgHandler PacketDataHandler, closeHandler CloseHandler) (PacketWriter, error)
|
|
22
17
|
}
|
|
23
18
|
|
|
24
19
|
// OpenStreamFunc opens a stream with a remote.
|
|
@@ -95,16 +90,5 @@ func (c *client) NewStream(ctx context.Context, service, method string, firstMsg
|
|
|
95
90
|
return NewMsgStream(ctx, clientRPC, clientRPC.ctxCancel), nil
|
|
96
91
|
}
|
|
97
92
|
|
|
98
|
-
// NewRawStream opens a new raw stream with the remote.
|
|
99
|
-
// Implements OpenStreamFunc.
|
|
100
|
-
// msgHandler must not be called concurrently.
|
|
101
|
-
func (c *client) NewRawStream(
|
|
102
|
-
ctx context.Context,
|
|
103
|
-
msgHandler PacketDataHandler,
|
|
104
|
-
closeHandler CloseHandler,
|
|
105
|
-
) (PacketWriter, error) {
|
|
106
|
-
return c.openStream(ctx, msgHandler, closeHandler)
|
|
107
|
-
}
|
|
108
|
-
|
|
109
93
|
// _ is a type assertion
|
|
110
94
|
var _ Client = ((*client)(nil))
|
package/srpc/writer.go
CHANGED
|
@@ -7,3 +7,27 @@ type PacketWriter interface {
|
|
|
7
7
|
// Close closes the writer.
|
|
8
8
|
Close() error
|
|
9
9
|
}
|
|
10
|
+
|
|
11
|
+
// packetWriterWithClose is a PacketWriter with a wrapped Close function.
|
|
12
|
+
type packetWriterWithClose struct {
|
|
13
|
+
PacketWriter
|
|
14
|
+
closeFn func() error
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// NewPacketWriterWithClose wraps a PacketWriter with a close function to call when Close is called.
|
|
18
|
+
func NewPacketWriterWithClose(prw PacketWriter, close func() error) PacketWriter {
|
|
19
|
+
return &packetWriterWithClose{PacketWriter: prw, closeFn: close}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Close closes the stream for reading and writing.
|
|
23
|
+
func (s *packetWriterWithClose) Close() error {
|
|
24
|
+
err := s.PacketWriter.Close()
|
|
25
|
+
err2 := s.closeFn()
|
|
26
|
+
if err != nil {
|
|
27
|
+
return err
|
|
28
|
+
}
|
|
29
|
+
return err2
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// _ is a type assertion
|
|
33
|
+
var _ PacketWriter = (*packetWriterWithClose)(nil)
|