diff options
Diffstat (limited to 'weed/mq/topic/local_topic.go')
| -rw-r--r-- | weed/mq/topic/local_topic.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/weed/mq/topic/local_topic.go b/weed/mq/topic/local_topic.go new file mode 100644 index 000000000..ef3c0e65e --- /dev/null +++ b/weed/mq/topic/local_topic.go @@ -0,0 +1,29 @@ +package topic + +type LocalTopic struct { + Topic + Partitions []*LocalPartition +} + +func (localTopic *LocalTopic) findPartition(partition Partition) *LocalPartition { + for _, localPartition := range localTopic.Partitions { + if localPartition.Partition.Equals(partition) { + return localPartition + } + } + return nil +} +func (localTopic *LocalTopic) removePartition(partition Partition) bool { + foundPartitionIndex := -1 + for i, localPartition := range localTopic.Partitions { + if localPartition.Partition.Equals(partition) { + foundPartitionIndex = i + break + } + } + if foundPartitionIndex == -1 { + return false + } + localTopic.Partitions = append(localTopic.Partitions[:foundPartitionIndex], localTopic.Partitions[foundPartitionIndex+1:]...) + return true +} |
