MOved the method nextClientID from IMessagesStore to the ISessionsStore because it's session related

This commit is contained in:
andsel
2016-01-17 13:00:36 +01:00
parent 5daf1362cc
commit 4c1f36cf67
9 changed files with 73 additions and 53 deletions
@@ -34,7 +34,6 @@ public class MemoryMessagesStore implements IMessagesStore {
private Map<String, String> m_retainedStore = new HashMap<>();
private Map<String, StoredMessage> m_persistentMessageStore = new HashMap<>();
private Map<String, Map<Integer, String>> m_messageToGuids;
private Map<String, Set<Integer>> m_inflightIDs = new HashMap<>();
MemoryMessagesStore(Map<String, Map<Integer, String>> messageToGuids) {
m_messageToGuids = messageToGuids;
@@ -97,25 +96,6 @@ public class MemoryMessagesStore implements IMessagesStore {
return m_persistentMessageStore.get(guid);
}
/**
* Return the next valid packetIdentifier for the given client session.
* */
@Override
public int nextPacketID(String clientID) {
Set<Integer> inFlightForClient = m_inflightIDs.get(clientID);
if (inFlightForClient == null) {
int nextPacketId = 1;
inFlightForClient = new HashSet<>();
inFlightForClient.add(nextPacketId);
m_inflightIDs.put(clientID, inFlightForClient);
return nextPacketId;
}
int maxId = Collections.max(inFlightForClient);
int nextPacketId = (maxId + 1) % 0xFFFF;
inFlightForClient.add(nextPacketId);
return nextPacketId;
}
@Override
public void cleanRetained(String topic) {
m_retainedStore.remove(topic);