aboutsummaryrefslogtreecommitdiff
path: root/weed/mq/topic.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-07-16 10:49:34 -0700
committerchrislu <chris.lu@gmail.com>2022-07-28 23:24:38 -0700
commitaa4a22ad477ac890d427f19c4a4d0cc0d9864eeb (patch)
treedc23fd01cb13d81b05e99c90d6569f85cf358f26 /weed/mq/topic.go
parent74f60f246fadee2244b78c0c68259a759be55490 (diff)
downloadseaweedfs-aa4a22ad477ac890d427f19c4a4d0cc0d9864eeb.tar.xz
seaweedfs-aa4a22ad477ac890d427f19c4a4d0cc0d9864eeb.zip
segment serde
Diffstat (limited to 'weed/mq/topic.go')
-rw-r--r--weed/mq/topic.go32
1 files changed, 29 insertions, 3 deletions
diff --git a/weed/mq/topic.go b/weed/mq/topic.go
index 87621fca7..12a749133 100644
--- a/weed/mq/topic.go
+++ b/weed/mq/topic.go
@@ -1,6 +1,8 @@
package mq
import (
+ "fmt"
+ "github.com/chrislusf/seaweedfs/weed/filer"
"github.com/chrislusf/seaweedfs/weed/pb/mq_pb"
"time"
)
@@ -13,9 +15,9 @@ type Topic struct {
}
type Partition struct {
- RangeStart int
- RangeStop int // exclusive
- RingSize int
+ RangeStart int32
+ RangeStop int32 // exclusive
+ RingSize int32
}
type Segment struct {
@@ -32,5 +34,29 @@ func FromPbSegment(segment *mq_pb.Segment) *Segment {
Name: segment.Topic,
},
Id: segment.Id,
+ Partition: Partition{
+ RangeStart: segment.Partition.RangeStart,
+ RangeStop: segment.Partition.RangeStop,
+ RingSize: segment.Partition.RingSize,
+ },
}
}
+
+func (segment *Segment) ToPbSegment() *mq_pb.Segment {
+ return &mq_pb.Segment{
+ Namespace: string(segment.Topic.Namespace),
+ Topic: segment.Topic.Name,
+ Id: segment.Id,
+ Partition: &mq_pb.Partition{
+ RingSize: segment.Partition.RingSize,
+ RangeStart: segment.Partition.RangeStart,
+ RangeStop: segment.Partition.RangeStop,
+ },
+ }
+}
+
+func (segment *Segment) DirAndName() (dir string, name string) {
+ dir = fmt.Sprintf("%s/%s/%s", filer.TopicsDir, segment.Topic.Namespace, segment.Topic.Name)
+ name = fmt.Sprintf("%4d.segment", segment.Id)
+ return
+}