summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/Client.java
diff options
context:
space:
mode:
Diffstat (limited to 'same/src/main/java/com/orbekk/same/Client.java')
-rw-r--r--same/src/main/java/com/orbekk/same/Client.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/same/src/main/java/com/orbekk/same/Client.java b/same/src/main/java/com/orbekk/same/Client.java
index 4d5965b..d4ec19e 100644
--- a/same/src/main/java/com/orbekk/same/Client.java
+++ b/same/src/main/java/com/orbekk/same/Client.java
@@ -23,6 +23,7 @@ public class Client implements DiscoveryListener {
private String myUrl;
String masterUrl;
private int masterId = -1;
+ private MasterController masterController = null;
private List<StateChangedListener> stateListeners =
new ArrayList<StateChangedListener>();
@@ -160,6 +161,10 @@ public class Client implements DiscoveryListener {
return connectionState;
}
+ public void setMasterController(MasterController masterController) {
+ this.masterController = masterController;
+ }
+
public void joinNetwork(String masterUrl) {
logger.info("joinNetwork({})", masterUrl);
connectionState = ConnectionState.UNSTABLE;
@@ -233,10 +238,15 @@ public class Client implements DiscoveryListener {
return paxosUrls;
}
- private void startMasterElection() {
+ public void startMasterElection() {
+ if (masterController == null) {
+ logger.warn("Could not become master: No master controller.");
+ return;
+ }
List<String> paxosUrls = getPaxosUrls();
MasterProposer proposer = new MasterProposer(getUrl(), paxosUrls,
connections);
// TODO: Run election.
+ masterController.enableMaster(state);
}
}