summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorVladimir Lavor <vlavor@cisco.com>2020-10-12 14:21:05 +0200
committerOndrej Fabry <ofabry@cisco.com>2020-10-15 08:30:21 +0000
commit9ea1f778fb1458ce6b2265941885eab0b34b33d7 (patch)
treec1e8c18f9a626ced15c6ea6cf72c053931f6170a /api
parent8d4ee12e94e634b38f1dc55c830f8e222822215f (diff)
Stream API options
* Stream API uses the same default values as the Channel API * request size, reply size and reply timeout settable using functional options * Added stream client example to show the stream API usage Change-Id: Id599134a7f520fc19f7d770ed5e3de74a7936829 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Diffstat (limited to 'api')
-rw-r--r--api/api.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/api/api.go b/api/api.go
index 977b02e..93f2b42 100644
--- a/api/api.go
+++ b/api/api.go
@@ -25,7 +25,7 @@ import (
type Connection interface {
// NewStream creates a new stream for sending and receiving messages.
// Context can be used to close the stream using cancel or timeout.
- NewStream(ctx context.Context) (Stream, error)
+ NewStream(ctx context.Context, options ...StreamOption) (Stream, error)
// Invoke can be used for a simple request-reply RPC.
// It creates stream and calls SendMsg with req and RecvMsg with reply.
@@ -57,6 +57,12 @@ type Stream interface {
Close() error
}
+// StreamOption allows customizing a Stream. Available options are:
+// - WithRequestSize
+// - WithReplySize
+// - WithReplyTimeout
+type StreamOption func(Stream)
+
// ChannelProvider provides the communication channel with govpp core.
type ChannelProvider interface {
// NewAPIChannel returns a new channel for communication with VPP via govpp core.