chyezh c725416288
enhance: move streaming proto into pkg (#35284)
issue: #33285

- move streaming related proto into pkg.
- add v2 message type and change flush message into v2 message.

Signed-off-by: chyezh <chyezh@outlook.com>
2024-08-07 10:34:16 +08:00

80 lines
1.6 KiB
Go

package adaptor
import (
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
"github.com/milvus-io/milvus/pkg/mq/msgstream"
"github.com/milvus-io/milvus/pkg/streaming/util/message"
)
var (
_ msgstream.TsMsg = &tsMsgImpl{}
_ msgstream.TsMsg = &FlushMessageBody{}
)
type tsMsgImpl struct {
msgstream.BaseMsg
ts uint64
sz int
msgType commonpb.MsgType
}
func (t *tsMsgImpl) ID() msgstream.UniqueID {
panic("should never use")
}
func (t *tsMsgImpl) SetID(id msgstream.UniqueID) {
panic("should never use")
}
func (t *tsMsgImpl) Type() commonpb.MsgType {
return t.msgType
}
func (t *tsMsgImpl) SourceID() int64 {
panic("should never use")
}
func (t *tsMsgImpl) Marshal(msgstream.TsMsg) (msgstream.MarshalType, error) {
panic("should never use")
}
func (t *tsMsgImpl) Unmarshal(msgstream.MarshalType) (msgstream.TsMsg, error) {
panic("should never use")
}
func (t *tsMsgImpl) Size() int {
return t.sz
}
func (t *tsMsgImpl) SetTs(ts uint64) {
t.ts = ts
}
type FlushMessageBody struct {
*tsMsgImpl
*message.FlushMessageBody
}
func NewFlushMessageBody(msg message.ImmutableMessage) (msgstream.TsMsg, error) {
flushMsg, err := message.AsImmutableFlushMessageV2(msg)
if err != nil {
return nil, err
}
body, err := flushMsg.Body()
if err != nil {
return nil, err
}
return &FlushMessageBody{
tsMsgImpl: &tsMsgImpl{
BaseMsg: msgstream.BaseMsg{
BeginTimestamp: msg.TimeTick(),
EndTimestamp: msg.TimeTick(),
},
ts: msg.TimeTick(),
sz: msg.EstimateSize(),
msgType: commonpb.MsgType(msg.MessageType()),
},
FlushMessageBody: body,
}, nil
}