Skip to content
This repository was archived by the owner on Jul 31, 2022. It is now read-only.

Commit 5c13df0

Browse files
committed
update throttler
1 parent bf1b92f commit 5c13df0

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/main/java/com/kttdevelopment/simplehttpserver/handler/ConnectionThrottler.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import com.sun.net.httpserver.HttpExchange;
44

5+
/**
6+
*
7+
*/
58
abstract class ConnectionThrottler {
69

710
abstract boolean addConnection(final HttpExchange exchange);

src/main/java/com/kttdevelopment/simplehttpserver/handler/SessionThrottler.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.kttdevelopment.simplehttpserver.handler;
22

3-
import com.kttdevelopment.simplehttpserver.HttpSession;
4-
import com.kttdevelopment.simplehttpserver.SimpleHttpServer;
3+
import com.kttdevelopment.simplehttpserver.*;
54
import com.sun.net.httpserver.HttpExchange;
65

76
import java.util.*;
@@ -10,38 +9,38 @@
109

1110
public class SessionThrottler extends ConnectionThrottler {
1211

13-
private final SimpleHttpServer server;
12+
private final HttpSessionHandler sessionHandler;
1413

1514
private final Predicate<HttpSession> usesLimit;
1615
private final Map<HttpSession, AtomicInteger> sessions = Collections.synchronizedMap(new HashMap<>());
1716

1817
private int maxConnections = 0;
1918

20-
public SessionThrottler(final SimpleHttpServer server){
21-
this.server = server;
19+
public SessionThrottler(final HttpSessionHandler sessionHandler){
20+
this.sessionHandler = sessionHandler;
2221
usesLimit = (exchange) -> true;
2322
}
2423

25-
public SessionThrottler(final SimpleHttpServer server, final int maxConnections){
26-
this.server = server;
24+
public SessionThrottler(final HttpSessionHandler sessionHandler, final int maxConnections){
25+
this.sessionHandler = sessionHandler;
2726
usesLimit = (exchange) -> true;
2827
this.maxConnections = maxConnections;
2928
}
3029

31-
public SessionThrottler(final SimpleHttpServer server, final Predicate<HttpSession> usesLimit){
32-
this.server = server;
30+
public SessionThrottler(final HttpSessionHandler sessionHandler, final Predicate<HttpSession> usesLimit){
31+
this.sessionHandler = sessionHandler;
3332
this.usesLimit = usesLimit;
3433
}
3534

36-
public SessionThrottler(final SimpleHttpServer server, final Predicate<HttpSession> usesLimit, final int maxConnections){
37-
this.server = server;
35+
public SessionThrottler(final HttpSessionHandler sessionHandler, final Predicate<HttpSession> usesLimit, final int maxConnections){
36+
this.sessionHandler = sessionHandler;
3837
this.usesLimit = usesLimit;
3938
this.maxConnections = maxConnections;
4039
}
4140

4241
@Override
4342
final boolean addConnection(final HttpExchange exchange){
44-
final HttpSession session = server.getHttpSession(exchange);
43+
final HttpSession session = sessionHandler.getSession(exchange);
4544
if(!usesLimit.test(session)){
4645
return true;
4746
}else{
@@ -58,7 +57,7 @@ final boolean addConnection(final HttpExchange exchange){
5857

5958
@Override
6059
final void deleteConnection(final HttpExchange exchange){
61-
final HttpSession session = server.getHttpSession(exchange);
60+
final HttpSession session = sessionHandler.getSession(exchange);
6261
if(usesLimit.test(session))
6362
synchronized(this){
6463
sessions.get(session).decrementAndGet();

0 commit comments

Comments
 (0)