diff options
| author | chrislu <chris.lu@gmail.com> | 2022-07-18 00:25:14 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-07-18 00:25:14 -0700 |
| commit | 7f672b37e166a97fc652a40c7fc41d03f1d6e690 (patch) | |
| tree | 3156f24f800c6bf5513aa9fc874df2fb5bf6ab26 /weed/pb | |
| parent | 1f2c5ee06ecd54f46169440a56be07c3081407b7 (diff) | |
| download | seaweedfs-7f672b37e166a97fc652a40c7fc41d03f1d6e690.tar.xz seaweedfs-7f672b37e166a97fc652a40c7fc41d03f1d6e690.zip | |
add flatbuffer serde for message
Diffstat (limited to 'weed/pb')
| -rw-r--r-- | weed/pb/Makefile | 3 | ||||
| -rw-r--r-- | weed/pb/message.fbs | 15 | ||||
| -rw-r--r-- | weed/pb/message_fbs/Message.go | 179 | ||||
| -rw-r--r-- | weed/pb/message_fbs/NameValue.go | 63 |
4 files changed, 260 insertions, 0 deletions
diff --git a/weed/pb/Makefile b/weed/pb/Makefile index 01322ffda..f76ec3814 100644 --- a/weed/pb/Makefile +++ b/weed/pb/Makefile @@ -13,3 +13,6 @@ gen: protoc mq.proto --go_out=./mq_pb --go-grpc_out=./mq_pb --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative # protoc filer.proto --java_out=../../other/java/client/src/main/java cp filer.proto ../../other/java/client/src/main/proto + +fbs: + flatc --go -o . --go-namespace message_fbs message.fbs diff --git a/weed/pb/message.fbs b/weed/pb/message.fbs new file mode 100644 index 000000000..8ee6c5b55 --- /dev/null +++ b/weed/pb/message.fbs @@ -0,0 +1,15 @@ +table NameValue { + name:string (key); + value:string; +} +table Message { + producer_id:int32 (id:0); + producer_seq:int64 (id:2); + segment_id:int32 (id:1); + segment_seq:int64 (id:3); + event_ts_ns:int64 (id:4); + recv_ts_ns:int64 (id:5); + properties:[NameValue] (id:6); + key:string (id:7); // bytes + data:string (id:8); // bytes +} diff --git a/weed/pb/message_fbs/Message.go b/weed/pb/message_fbs/Message.go new file mode 100644 index 000000000..058abfeaa --- /dev/null +++ b/weed/pb/message_fbs/Message.go @@ -0,0 +1,179 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package message_fbs + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Message struct { + _tab flatbuffers.Table +} + +func GetRootAsMessage(buf []byte, offset flatbuffers.UOffsetT) *Message { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Message{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsMessage(buf []byte, offset flatbuffers.UOffsetT) *Message { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Message{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Message) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Message) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Message) ProducerId() int32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetInt32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateProducerId(n int32) bool { + return rcv._tab.MutateInt32Slot(4, n) +} + +func (rcv *Message) SegmentId() int32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetInt32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateSegmentId(n int32) bool { + return rcv._tab.MutateInt32Slot(6, n) +} + +func (rcv *Message) ProducerSeq() int64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(8)) + if o != 0 { + return rcv._tab.GetInt64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateProducerSeq(n int64) bool { + return rcv._tab.MutateInt64Slot(8, n) +} + +func (rcv *Message) SegmentSeq() int64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(10)) + if o != 0 { + return rcv._tab.GetInt64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateSegmentSeq(n int64) bool { + return rcv._tab.MutateInt64Slot(10, n) +} + +func (rcv *Message) EventTsNs() int64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(12)) + if o != 0 { + return rcv._tab.GetInt64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateEventTsNs(n int64) bool { + return rcv._tab.MutateInt64Slot(12, n) +} + +func (rcv *Message) RecvTsNs() int64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) + if o != 0 { + return rcv._tab.GetInt64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Message) MutateRecvTsNs(n int64) bool { + return rcv._tab.MutateInt64Slot(14, n) +} + +func (rcv *Message) Properties(obj *NameValue, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *Message) PropertiesLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(16)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func (rcv *Message) Key() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(18)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func (rcv *Message) Data() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(20)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func MessageStart(builder *flatbuffers.Builder) { + builder.StartObject(9) +} +func MessageAddProducerId(builder *flatbuffers.Builder, producerId int32) { + builder.PrependInt32Slot(0, producerId, 0) +} +func MessageAddSegmentId(builder *flatbuffers.Builder, segmentId int32) { + builder.PrependInt32Slot(1, segmentId, 0) +} +func MessageAddProducerSeq(builder *flatbuffers.Builder, producerSeq int64) { + builder.PrependInt64Slot(2, producerSeq, 0) +} +func MessageAddSegmentSeq(builder *flatbuffers.Builder, segmentSeq int64) { + builder.PrependInt64Slot(3, segmentSeq, 0) +} +func MessageAddEventTsNs(builder *flatbuffers.Builder, eventTsNs int64) { + builder.PrependInt64Slot(4, eventTsNs, 0) +} +func MessageAddRecvTsNs(builder *flatbuffers.Builder, recvTsNs int64) { + builder.PrependInt64Slot(5, recvTsNs, 0) +} +func MessageAddProperties(builder *flatbuffers.Builder, properties flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(6, flatbuffers.UOffsetT(properties), 0) +} +func MessageStartPropertiesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func MessageAddKey(builder *flatbuffers.Builder, key flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(7, flatbuffers.UOffsetT(key), 0) +} +func MessageAddData(builder *flatbuffers.Builder, data flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(8, flatbuffers.UOffsetT(data), 0) +} +func MessageEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/weed/pb/message_fbs/NameValue.go b/weed/pb/message_fbs/NameValue.go new file mode 100644 index 000000000..b5dfdad16 --- /dev/null +++ b/weed/pb/message_fbs/NameValue.go @@ -0,0 +1,63 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package message_fbs + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type NameValue struct { + _tab flatbuffers.Table +} + +func GetRootAsNameValue(buf []byte, offset flatbuffers.UOffsetT) *NameValue { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &NameValue{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsNameValue(buf []byte, offset flatbuffers.UOffsetT) *NameValue { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &NameValue{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *NameValue) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *NameValue) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *NameValue) Name() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func (rcv *NameValue) Value() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func NameValueStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func NameValueAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0) +} +func NameValueAddValue(builder *flatbuffers.Builder, value flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(value), 0) +} +func NameValueEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} |
