mirror of
https://github.com/chrislusf/seaweedfs
synced 2024-05-20 02:10:20 +02:00
33 lines
938 B
Go
33 lines
938 B
Go
package sub_coordinator
|
|
|
|
import "github.com/seaweedfs/seaweedfs/weed/mq/topic"
|
|
|
|
type PartitionSlotToConsumerInstance struct {
|
|
RangeStart int32
|
|
RangeStop int32
|
|
UnixTimeNs int64
|
|
Broker string
|
|
AssignedInstanceId string
|
|
}
|
|
|
|
type PartitionSlotToConsumerInstanceList struct {
|
|
PartitionSlots []*PartitionSlotToConsumerInstance
|
|
RingSize int32
|
|
Version int64
|
|
}
|
|
|
|
func NewPartitionSlotToConsumerInstanceList(ringSize int32, version int64) *PartitionSlotToConsumerInstanceList {
|
|
return &PartitionSlotToConsumerInstanceList{
|
|
RingSize: ringSize,
|
|
Version: version,
|
|
}
|
|
}
|
|
|
|
func ToPartitions(ringSize int32, slots []*PartitionSlotToConsumerInstance) []*topic.Partition {
|
|
partitions := make([]*topic.Partition, 0, len(slots))
|
|
for _, slot := range slots {
|
|
partitions = append(partitions, topic.NewPartition(slot.RangeStart, slot.RangeStop, ringSize, slot.UnixTimeNs))
|
|
}
|
|
return partitions
|
|
}
|