Browse Source

Optimal maps used

master
Nikita 11 years ago
parent
commit
f869b39f03
  1. 7
      src/main/java/com/corundumstudio/socketio/ack/AckManager.java
  2. 3
      src/main/java/com/corundumstudio/socketio/handler/ClientHead.java
  3. 6
      src/main/java/com/corundumstudio/socketio/handler/ClientsBox.java
  4. 14
      src/main/java/com/corundumstudio/socketio/namespace/Namespace.java
  5. 5
      src/main/java/com/corundumstudio/socketio/namespace/NamespacesHub.java
  6. 3
      src/main/java/com/corundumstudio/socketio/protocol/JacksonJsonSupport.java
  7. 4
      src/main/java/com/corundumstudio/socketio/scheduler/HashedWheelScheduler.java
  8. 6
      src/main/java/com/corundumstudio/socketio/store/HazelcastPubSubStore.java
  9. 5
      src/main/java/com/corundumstudio/socketio/store/MemoryStore.java
  10. 4
      src/main/java/com/corundumstudio/socketio/store/MemoryStoreFactory.java
  11. 5
      src/main/java/com/corundumstudio/socketio/store/RedissonPubSubStore.java

7
src/main/java/com/corundumstudio/socketio/ack/AckManager.java

@ -15,11 +15,12 @@
*/
package com.corundumstudio.socketio.ack;
import io.netty.util.internal.PlatformDependent;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
@ -41,7 +42,7 @@ public class AckManager implements Disconnectable {
class AckEntry {
final Map<Long, AckCallback<?>> ackCallbacks = new ConcurrentHashMap<Long, AckCallback<?>>();
final Map<Long, AckCallback<?>> ackCallbacks = PlatformDependent.newConcurrentHashMap();
final AtomicLong ackIndex = new AtomicLong(-1);
public long addAckCallback(AckCallback<?> callback) {
@ -70,7 +71,7 @@ public class AckManager implements Disconnectable {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Map<UUID, AckEntry> ackEntries = new ConcurrentHashMap<UUID, AckEntry>();
private final Map<UUID, AckEntry> ackEntries = PlatformDependent.newConcurrentHashMap();
private final CancelableScheduler scheduler;

3
src/main/java/com/corundumstudio/socketio/handler/ClientHead.java

@ -20,6 +20,7 @@ import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.util.AttributeKey;
import io.netty.util.internal.PlatformDependent;
import java.net.SocketAddress;
import java.util.HashMap;
@ -59,7 +60,7 @@ public class ClientHead {
public static final AttributeKey<ClientHead> CLIENT = AttributeKey.<ClientHead>valueOf("client");
private final AtomicBoolean disconnected = new AtomicBoolean();
private final Map<Namespace, NamespaceClient> namespaceClients = new ConcurrentHashMap<Namespace, NamespaceClient>();
private final Map<Namespace, NamespaceClient> namespaceClients = PlatformDependent.newConcurrentHashMap();
private final Map<Transport, TransportState> channels = new HashMap<Transport, TransportState>();
private final HandshakeData handshakeData;
private final UUID sessionId;

6
src/main/java/com/corundumstudio/socketio/handler/ClientsBox.java

@ -16,17 +16,17 @@
package com.corundumstudio.socketio.handler;
import io.netty.channel.Channel;
import io.netty.util.internal.PlatformDependent;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import com.corundumstudio.socketio.HandshakeData;
public class ClientsBox {
private final Map<UUID, ClientHead> uuid2clients = new ConcurrentHashMap<UUID, ClientHead>();
private final Map<Channel, ClientHead> channel2clients = new ConcurrentHashMap<Channel, ClientHead>();
private final Map<UUID, ClientHead> uuid2clients = PlatformDependent.newConcurrentHashMap();
private final Map<Channel, ClientHead> channel2clients = PlatformDependent.newConcurrentHashMap();
// TODO use storeFactory
public HandshakeData getHandshakeData(UUID sessionId) {

14
src/main/java/com/corundumstudio/socketio/namespace/Namespace.java

@ -15,6 +15,8 @@
*/
package com.corundumstudio.socketio.namespace;
import io.netty.util.internal.PlatformDependent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@ -23,7 +25,6 @@ import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
@ -58,14 +59,13 @@ public class Namespace implements SocketIONamespace {
public static final String DEFAULT_NAME = "";
private final ScannerEngine engine = new ScannerEngine();
private final ConcurrentMap<String, EventEntry<?>> eventListeners =
new ConcurrentHashMap<String, EventEntry<?>>();
private final ConcurrentMap<String, EventEntry<?>> eventListeners = PlatformDependent.newConcurrentHashMap();
private final Queue<ConnectListener> connectListeners = new ConcurrentLinkedQueue<ConnectListener>();
private final Queue<DisconnectListener> disconnectListeners = new ConcurrentLinkedQueue<DisconnectListener>();
private final Map<UUID, SocketIOClient> allClients = new ConcurrentHashMap<UUID, SocketIOClient>();
private final ConcurrentMap<String, Set<UUID>> roomClients = new ConcurrentHashMap<String, Set<UUID>>();
private final ConcurrentMap<UUID, Set<String>> clientRooms = new ConcurrentHashMap<UUID, Set<String>>();
private final Map<UUID, SocketIOClient> allClients = PlatformDependent.newConcurrentHashMap();
private final ConcurrentMap<String, Set<UUID>> roomClients = PlatformDependent.newConcurrentHashMap();
private final ConcurrentMap<UUID, Set<String>> clientRooms = PlatformDependent.newConcurrentHashMap();
private final String name;
private final AckMode ackMode;
@ -261,7 +261,7 @@ public class Namespace implements SocketIONamespace {
private <K, V> void join(ConcurrentMap<K, Set<V>> map, K key, V value) {
Set<V> clients = map.get(key);
if (clients == null) {
clients = Collections.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
clients = Collections.newSetFromMap(PlatformDependent.<V, Boolean>newConcurrentHashMap());
Set<V> oldClients = map.putIfAbsent(key, clients);
if (oldClients != null) {
clients = oldClients;

5
src/main/java/com/corundumstudio/socketio/namespace/NamespacesHub.java

@ -15,10 +15,11 @@
*/
package com.corundumstudio.socketio.namespace;
import io.netty.util.internal.PlatformDependent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import com.corundumstudio.socketio.Configuration;
@ -28,7 +29,7 @@ import com.corundumstudio.socketio.misc.CompositeIterable;
public class NamespacesHub {
private final ConcurrentMap<String, SocketIONamespace> namespaces = new ConcurrentHashMap<String, SocketIONamespace>();
private final ConcurrentMap<String, SocketIONamespace> namespaces = PlatformDependent.newConcurrentHashMap();
private final Configuration configuration;
public NamespacesHub(Configuration configuration) {

3
src/main/java/com/corundumstudio/socketio/protocol/JacksonJsonSupport.java

@ -17,6 +17,7 @@ package com.corundumstudio.socketio.protocol;
import io.netty.buffer.ByteBufInputStream;
import io.netty.buffer.ByteBufOutputStream;
import io.netty.util.internal.PlatformDependent;
import java.io.IOException;
import java.lang.reflect.Type;
@ -159,7 +160,7 @@ public class JacksonJsonSupport implements JsonSupport {
private static final long serialVersionUID = 8178797221017768689L;
final Map<EventKey, List<Class<?>>> eventMapping = new ConcurrentHashMap<EventKey, List<Class<?>>>();
final Map<EventKey, List<Class<?>>> eventMapping = PlatformDependent.newConcurrentHashMap();
protected EventDeserializer() {

4
src/main/java/com/corundumstudio/socketio/scheduler/HashedWheelScheduler.java

@ -19,14 +19,14 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.util.HashedWheelTimer;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;
import io.netty.util.internal.PlatformDependent;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
public class HashedWheelScheduler implements CancelableScheduler {
private final Map<SchedulerKey, Timeout> scheduledFutures = new ConcurrentHashMap<SchedulerKey, Timeout>();
private final Map<SchedulerKey, Timeout> scheduledFutures = PlatformDependent.newConcurrentHashMap();
private final HashedWheelTimer executorService = new HashedWheelTimer();
private volatile ChannelHandlerContext ctx;

6
src/main/java/com/corundumstudio/socketio/store/HazelcastPubSubStore.java

@ -15,8 +15,9 @@
*/
package com.corundumstudio.socketio.store;
import io.netty.util.internal.PlatformDependent;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
@ -35,8 +36,7 @@ public class HazelcastPubSubStore implements PubSubStore {
private final HazelcastInstance hazelcastSub;
private final Long nodeId;
private final ConcurrentMap<String, Queue<String>> map =
new ConcurrentHashMap<String, Queue<String>>();
private final ConcurrentMap<String, Queue<String>> map = PlatformDependent.newConcurrentHashMap();
public HazelcastPubSubStore(HazelcastInstance hazelcastPub, HazelcastInstance hazelcastSub, Long nodeId) {
this.hazelcastPub = hazelcastPub;

5
src/main/java/com/corundumstudio/socketio/store/MemoryStore.java

@ -15,12 +15,13 @@
*/
package com.corundumstudio.socketio.store;
import io.netty.util.internal.PlatformDependent;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class MemoryStore implements Store {
private final Map<String, Object> store = new ConcurrentHashMap<String, Object>();
private final Map<String, Object> store = PlatformDependent.newConcurrentHashMap();
@Override
public void set(String key, Object value) {

4
src/main/java/com/corundumstudio/socketio/store/MemoryStoreFactory.java

@ -15,6 +15,8 @@
*/
package com.corundumstudio.socketio.store;
import io.netty.util.internal.PlatformDependent;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
@ -47,7 +49,7 @@ public class MemoryStoreFactory extends BaseStoreFactory {
@Override
public <K, V> Map<K, V> createMap(String name) {
return new ConcurrentHashMap<K, V>();
return PlatformDependent.newConcurrentHashMap();
}
}

5
src/main/java/com/corundumstudio/socketio/store/RedissonPubSubStore.java

@ -15,6 +15,8 @@
*/
package com.corundumstudio.socketio.store;
import io.netty.util.internal.PlatformDependent;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
@ -34,8 +36,7 @@ public class RedissonPubSubStore implements PubSubStore {
private final Redisson redissonSub;
private final Long nodeId;
private final ConcurrentMap<String, Queue<Integer>> map =
new ConcurrentHashMap<String, Queue<Integer>>();
private final ConcurrentMap<String, Queue<Integer>> map = PlatformDependent.newConcurrentHashMap();
public RedissonPubSubStore(Redisson redissonPub, Redisson redissonSub, Long nodeId) {
this.redissonPub = redissonPub;

Loading…
Cancel
Save