From 9ea1f778fb1458ce6b2265941885eab0b34b33d7 Mon Sep 17 00:00:00 2001 From: Vladimir Lavor Date: Mon, 12 Oct 2020 14:21:05 +0200 Subject: 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 --- api/api.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'api/api.go') 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. -- cgit 1.2.3-korg