SEBA-989-Instance coordination and state distribution mechanism in IgmpStatisticsManager
Change-Id: Ibf3f3a2c5c91c010ef909692eea913f95ee7a92e
diff --git a/api/src/main/java/org/opencord/igmpproxy/IgmpLeadershipService.java b/api/src/main/java/org/opencord/igmpproxy/IgmpLeadershipService.java
index 1b8d0fe..c3563a4 100644
--- a/api/src/main/java/org/opencord/igmpproxy/IgmpLeadershipService.java
+++ b/api/src/main/java/org/opencord/igmpproxy/IgmpLeadershipService.java
@@ -15,6 +15,8 @@
*/
package org.opencord.igmpproxy;
+import org.onosproject.cluster.Leadership;
+import org.onosproject.cluster.NodeId;
import org.onosproject.net.DeviceId;
/**
@@ -28,4 +30,34 @@
* @return if it is leadership of this device, return true
*/
boolean isLocalLeader(DeviceId deviceId);
+
+ /**
+ * Gets local node id.
+ *
+ * @return node id
+ */
+ NodeId getLocalNodeId();
+
+ /**
+ * Gets leader for topic.
+ *
+ * @param topic topic name
+ * @return leader of topic
+ */
+ NodeId getLeader(String topic);
+
+ /**
+ * Enters a leadership contest.
+ *
+ * @param topic leadership topic
+ * @return {@code Leadership} future
+ */
+ Leadership runForLeadership(String topic);
+
+ /**
+ * Withdraws from a leadership contest.
+ *
+ * @param topic leadership topic
+ */
+ void withdraw(String topic);
}