Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var BridgeDesc rpc.InterfaceDesc = descBridge
BridgeDesc describes the Bridge interface.
Functions ¶
This section is empty.
Types ¶
type BridgeClientMethods ¶
type BridgeClientMethods interface {
// Links a pair of MQTT brokers for a given set of topics. All messages on
// those topics received at the caller are sent on the input stream to the
// callee, and all messages on those topics received at the callee are
// sent on the output stream.
Link(_ *context.T, topics []Topic, _ ...rpc.CallOpt) (BridgeLinkClientCall, error)
}
BridgeClientMethods is the client interface containing Bridge methods.
type BridgeClientStub ¶
type BridgeClientStub interface {
BridgeClientMethods
rpc.UniversalServiceMethods
}
BridgeClientStub adds universal methods to BridgeClientMethods.
func BridgeClient ¶
func BridgeClient(name string) BridgeClientStub
BridgeClient returns a client stub for Bridge.
type BridgeLinkClientCall ¶
type BridgeLinkClientCall interface {
BridgeLinkClientStream
// Finish performs the equivalent of SendStream().Close, then blocks until
// the server is done, and returns the positional return values for the call.
//
// Finish returns immediately if the call has been canceled; depending on the
// timing the output could either be an error signaling cancelation, or the
// valid positional return values from the server.
//
// Calling Finish is mandatory for releasing stream resources, unless the call
// has been canceled or any of the other methods return an error. Finish should
// be called at most once.
Finish() error
}
BridgeLinkClientCall represents the call returned from Bridge.Link.
type BridgeLinkClientStream ¶
type BridgeLinkClientStream interface {
// RecvStream returns the receiver side of the Bridge.Link client stream.
RecvStream() interface {
// Advance stages an item so that it may be retrieved via Value. Returns
// true iff there is an item to retrieve. Advance must be called before
// Value is called. May block if an item is not available.
Advance() bool
// Value returns the item that was staged by Advance. May panic if Advance
// returned false or was not called. Never blocks.
Value() Message
// Err returns any error encountered by Advance. Never blocks.
Err() error
}
// SendStream returns the send side of the Bridge.Link client stream.
SendStream() interface {
// Send places the item onto the output stream. Returns errors
// encountered while sending, or if Send is called after Close or
// the stream has been canceled. Blocks if there is no buffer
// space; will unblock when buffer space is available or after
// the stream has been canceled.
Send(item Message) error
// Close indicates to the server that no more items will be sent;
// server Recv calls will receive io.EOF after all sent items.
// This is an optional call - e.g. a client might call Close if it
// needs to continue receiving items from the server after it's
// done sending. Returns errors encountered while closing, or if
// Close is called after the stream has been canceled. Like Send,
// blocks if there is no buffer space available.
Close() error
}
}
BridgeLinkClientStream is the client stream for Bridge.Link.
type BridgeLinkServerCall ¶
type BridgeLinkServerCall interface {
rpc.ServerCall
BridgeLinkServerStream
}
BridgeLinkServerCall represents the context passed to Bridge.Link.
type BridgeLinkServerCallStub ¶
type BridgeLinkServerCallStub struct {
rpc.StreamServerCall
// contains filtered or unexported fields
}
BridgeLinkServerCallStub is a wrapper that converts rpc.StreamServerCall into a typesafe stub that implements BridgeLinkServerCall.
func (*BridgeLinkServerCallStub) Init ¶
func (s *BridgeLinkServerCallStub) Init(call rpc.StreamServerCall)
Init initializes BridgeLinkServerCallStub from rpc.StreamServerCall.
func (*BridgeLinkServerCallStub) RecvStream ¶
func (s *BridgeLinkServerCallStub) RecvStream() interface { Advance() bool Value() Message Err() error }
RecvStream returns the receiver side of the Bridge.Link server stream.
func (*BridgeLinkServerCallStub) SendStream ¶
func (s *BridgeLinkServerCallStub) SendStream() interface { Send(item Message) error }
SendStream returns the send side of the Bridge.Link server stream.
type BridgeLinkServerStream ¶
type BridgeLinkServerStream interface {
// RecvStream returns the receiver side of the Bridge.Link server stream.
RecvStream() interface {
// Advance stages an item so that it may be retrieved via Value. Returns
// true iff there is an item to retrieve. Advance must be called before
// Value is called. May block if an item is not available.
Advance() bool
// Value returns the item that was staged by Advance. May panic if Advance
// returned false or was not called. Never blocks.
Value() Message
// Err returns any error encountered by Advance. Never blocks.
Err() error
}
// SendStream returns the send side of the Bridge.Link server stream.
SendStream() interface {
// Send places the item onto the output stream. Returns errors encountered
// while sending. Blocks if there is no buffer space; will unblock when
// buffer space is available.
Send(item Message) error
}
}
BridgeLinkServerStream is the server stream for Bridge.Link.
type BridgeServerMethods ¶
type BridgeServerMethods interface {
// Links a pair of MQTT brokers for a given set of topics. All messages on
// those topics received at the caller are sent on the input stream to the
// callee, and all messages on those topics received at the callee are
// sent on the output stream.
Link(_ *context.T, _ BridgeLinkServerCall, topics []Topic) error
}
BridgeServerMethods is the interface a server writer implements for Bridge.
type BridgeServerStub ¶
type BridgeServerStub interface {
BridgeServerStubMethods
// Describe the Bridge interfaces.
Describe__() []rpc.InterfaceDesc
}
BridgeServerStub adds universal methods to BridgeServerStubMethods.
func BridgeServer ¶
func BridgeServer(impl BridgeServerMethods) BridgeServerStub
BridgeServer returns a server stub for Bridge. It converts an implementation of BridgeServerMethods into an object that may be used by rpc.Server.
type BridgeServerStubMethods ¶
type BridgeServerStubMethods interface {
// Links a pair of MQTT brokers for a given set of topics. All messages on
// those topics received at the caller are sent on the input stream to the
// callee, and all messages on those topics received at the callee are
// sent on the output stream.
Link(_ *context.T, _ *BridgeLinkServerCallStub, topics []Topic) error
}
BridgeServerStubMethods is the server interface containing Bridge methods, as expected by rpc.Server. The only difference between this interface and BridgeServerMethods is the streaming methods.