mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +08:00
issue: #33285 - use reader but not consumer for pulsar - advanced test framework - move some streaming related package into pkg --------- Signed-off-by: chyezh <chyezh@outlook.com>
35 lines
905 B
Go
35 lines
905 B
Go
package message
|
|
|
|
// Handler is used to handle message read from log.
|
|
type Handler interface {
|
|
// Handle is the callback for handling message.
|
|
Handle(msg ImmutableMessage)
|
|
|
|
// Close is called after all messages are handled or handling is interrupted.
|
|
Close()
|
|
}
|
|
|
|
var _ Handler = ChanMessageHandler(nil)
|
|
|
|
// ChanMessageHandler is a handler just forward the message into a channel.
|
|
type ChanMessageHandler chan ImmutableMessage
|
|
|
|
// Handle is the callback for handling message.
|
|
func (cmh ChanMessageHandler) Handle(msg ImmutableMessage) {
|
|
cmh <- msg
|
|
}
|
|
|
|
// Close is called after all messages are handled or handling is interrupted.
|
|
func (cmh ChanMessageHandler) Close() {
|
|
close(cmh)
|
|
}
|
|
|
|
// NopCloseHandler is a handler that do nothing when close.
|
|
type NopCloseHandler struct {
|
|
Handler
|
|
}
|
|
|
|
// Close is called after all messages are handled or handling is interrupted.
|
|
func (nch NopCloseHandler) Close() {
|
|
}
|