11package com .kttdevelopment .simplehttpserver .handler ;
22
3- import com .kttdevelopment .simplehttpserver .HttpSession ;
4- import com .kttdevelopment .simplehttpserver .SimpleHttpServer ;
3+ import com .kttdevelopment .simplehttpserver .*;
54import com .sun .net .httpserver .HttpExchange ;
65
76import java .util .*;
109
1110public 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