Removed service implementation. Refactored interfaces
This commit is contained in:
parent
8a14640aaa
commit
3b89c79540
@ -5,18 +5,25 @@ import ru.dragonestia.loadbalancer.model.Node;
|
||||
import ru.dragonestia.loadbalancer.model.User;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface BucketService {
|
||||
|
||||
void createBucket(Node node, Bucket lobby);
|
||||
void createBucket(Bucket lobby);
|
||||
|
||||
void removeBucket(Node node, Bucket lobby);
|
||||
void removeBucket(Bucket lobby);
|
||||
|
||||
Optional<Bucket> findBucket(Node node, String identifier);
|
||||
|
||||
List<Bucket> allBuckets(Node node);
|
||||
|
||||
int countAvailableBuckets(Node node);
|
||||
default int countAvailableBuckets(Node node) {
|
||||
return countAvailableBuckets(node, 1);
|
||||
}
|
||||
|
||||
int countAvailableBuckets(Node node, int requiredSlots);
|
||||
|
||||
Bucket pickAvailableBucket(Node node, List<User> users);
|
||||
|
||||
void freeBucket(Node node, List<User> users);
|
||||
void freeBucket(Bucket bucket, List<User> users);
|
||||
}
|
||||
|
||||
@ -1,41 +0,0 @@
|
||||
package ru.dragonestia.loadbalancer.service.impl;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.dragonestia.loadbalancer.model.Node;
|
||||
import ru.dragonestia.loadbalancer.service.NodeService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
||||
@Service
|
||||
public class NodeServiceImpl implements NodeService {
|
||||
|
||||
private final Map<String, Node> nodes = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public void createNode(Node node) {
|
||||
if (nodes.containsKey(node.identifier())) {
|
||||
throw new IllegalArgumentException("Node with id '" + node.identifier() + "' already exists");
|
||||
}
|
||||
|
||||
nodes.put(node.identifier(), node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeNode(Node node) {
|
||||
nodes.remove(node.identifier());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Node> allNodes() {
|
||||
return nodes.values().stream().toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Node> findNode(String identifier) {
|
||||
return nodes.containsKey(identifier)? Optional.of(nodes.get(identifier)) : Optional.empty();
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user