mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-15 20:12:04 +01:00
Use standard manager pattern in PingManager
- No need to use a synchronized map, as the getInstanceFor method is synchronized - Put the PingManager in the map where it's created and not in the constructor
This commit is contained in:
parent
0293ca2bcd
commit
b17ecb4555
1 changed files with 2 additions and 3 deletions
|
@ -60,8 +60,7 @@ import org.jivesoftware.smackx.ping.packet.Ping;
|
||||||
public class PingManager extends Manager {
|
public class PingManager extends Manager {
|
||||||
private static final Logger LOGGER = Logger.getLogger(PingManager.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(PingManager.class.getName());
|
||||||
|
|
||||||
private static final Map<XMPPConnection, PingManager> INSTANCES = Collections
|
private static final Map<XMPPConnection, PingManager> INSTANCES = new WeakHashMap<XMPPConnection, PingManager>();
|
||||||
.synchronizedMap(new WeakHashMap<XMPPConnection, PingManager>());
|
|
||||||
|
|
||||||
private static final PacketFilter PING_PACKET_FILTER = new AndFilter(
|
private static final PacketFilter PING_PACKET_FILTER = new AndFilter(
|
||||||
new PacketTypeFilter(Ping.class), IQTypeFilter.GET);
|
new PacketTypeFilter(Ping.class), IQTypeFilter.GET);
|
||||||
|
@ -86,6 +85,7 @@ public class PingManager extends Manager {
|
||||||
PingManager pingManager = INSTANCES.get(connection);
|
PingManager pingManager = INSTANCES.get(connection);
|
||||||
if (pingManager == null) {
|
if (pingManager == null) {
|
||||||
pingManager = new PingManager(connection);
|
pingManager = new PingManager(connection);
|
||||||
|
INSTANCES.put(connection, pingManager);
|
||||||
}
|
}
|
||||||
return pingManager;
|
return pingManager;
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,6 @@ public class PingManager extends Manager {
|
||||||
new SmackExecutorThreadFactory(connection.getConnectionCounter(), "Ping"));
|
new SmackExecutorThreadFactory(connection.getConnectionCounter(), "Ping"));
|
||||||
ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);
|
ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);
|
||||||
sdm.addFeature(Ping.NAMESPACE);
|
sdm.addFeature(Ping.NAMESPACE);
|
||||||
INSTANCES.put(connection, this);
|
|
||||||
|
|
||||||
connection.addPacketListener(new PacketListener() {
|
connection.addPacketListener(new PacketListener() {
|
||||||
// Send a Pong for every Ping
|
// Send a Pong for every Ping
|
||||||
|
|
Loading…
Reference in a new issue