aboutsummaryrefslogtreecommitdiff
path: root/weed/mq/topic/local_topic.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mq/topic/local_topic.go')
-rw-r--r--weed/mq/topic/local_topic.go29
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
+}