mirror of https://github.com/knative/docs.git
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package protocol
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/cloudevents/sdk-go/v2/binding"
|
|
)
|
|
|
|
// Sender sends messages.
|
|
type Sender interface {
|
|
// Send a message.
|
|
//
|
|
// Send returns when the "outbound" message has been sent. The Sender may
|
|
// still be expecting acknowledgment or holding other state for the message.
|
|
//
|
|
// m.Finish() is called when sending is finished (both succeeded or failed):
|
|
// expected acknowledgments (or errors) have been received, the Sender is
|
|
// no longer holding any state for the message.
|
|
// m.Finish() may be called during or after Send().
|
|
Send(ctx context.Context, m binding.Message) error
|
|
}
|
|
|
|
// SendCloser is a Sender that can be closed.
|
|
type SendCloser interface {
|
|
Sender
|
|
Closer
|
|
}
|
|
|
|
// Requester sends a message and receives a response
|
|
//
|
|
// Optional interface that may be implemented by protocols that support
|
|
// request/response correlation.
|
|
type Requester interface {
|
|
// Request sends m like Sender.Send() but also arranges to receive a response.
|
|
Request(ctx context.Context, m binding.Message) (binding.Message, error)
|
|
}
|
|
|
|
// RequesterCloser is a Requester that can be closed.
|
|
type RequesterCloser interface {
|
|
Requester
|
|
Closer
|
|
}
|