summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/replica2/Servers.java
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-11-28 17:32:28 -0500
committerSam Anthony <sam@samanthony.xyz>2024-11-28 17:32:28 -0500
commitd267dd1dda606f0c56d8afaa7187485e60ebfd86 (patch)
treee1bca5933aa7e5e9793773057fd5616ff65a9eb8 /src/main/java/derms/replica2/Servers.java
parent6654546671eea9f9becd32b3160a134802659cbc (diff)
downloadsoen423-d267dd1dda606f0c56d8afaa7187485e60ebfd86.zip
move replica2 to top level
Diffstat (limited to 'src/main/java/derms/replica2/Servers.java')
-rw-r--r--src/main/java/derms/replica2/Servers.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/derms/replica2/Servers.java b/src/main/java/derms/replica2/Servers.java
new file mode 100644
index 0000000..498b7ce
--- /dev/null
+++ b/src/main/java/derms/replica2/Servers.java
@@ -0,0 +1,34 @@
+package derms.replica2;
+
+import java.net.InetAddress;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+class Servers {
+ private Map<City, InetAddress> servers = new ConcurrentHashMap<City, InetAddress>();
+
+ /** Returns the address of the server located in the specified city, or null if there is no server in the city. */
+ InetAddress get(City city) {
+ return servers.get(city);
+ }
+
+ /**
+ * Associates the specified server address with the specified city.
+ * If there was already a server associated with the city, the old value is replaced.
+ * @param city the city where the server is located
+ * @param addr the address of the server
+ * @return the previous server address, or null if there was no server associated with this city.
+ */
+ InetAddress put(City city, InetAddress addr) {
+ return servers.put(city, addr);
+ }
+
+ Collection<InetAddress> all() {
+ return servers.values();
+ }
+
+ int size() {
+ return servers.size();
+ }
+}