Added memory implementation of DummyStorageService for the subscriptions part

This commit is contained in:
andrea
2013-08-30 17:40:56 +02:00
parent 22269ccfb1
commit d2554788ea
2 changed files with 24 additions and 4 deletions
@@ -1,5 +1,6 @@
package org.dna.mqtt.moquette.messaging.spi.impl;
import java.util.ArrayList;
import org.dna.mqtt.moquette.messaging.spi.IMatchingCondition;
import org.dna.mqtt.moquette.messaging.spi.IStorageService;
import org.dna.mqtt.moquette.messaging.spi.impl.events.PublishEvent;
@@ -8,11 +9,18 @@ import org.dna.mqtt.moquette.proto.messages.AbstractMessage;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
*/
public class DummyStorageService implements IStorageService {
private Map<String, Set<Subscription>> m_persistentSubscriptions = new HashMap<String, Set<Subscription>>();
public void initStore() {
//To change body of implemented methods use File | Settings | File Templates.
}
@@ -46,15 +54,27 @@ public class DummyStorageService implements IStorageService {
}
public void addNewSubscription(Subscription newSubscription, String clientID) {
//To change body of implemented methods use File | Settings | File Templates.
if (!m_persistentSubscriptions.containsKey(clientID)) {
m_persistentSubscriptions.put(clientID, new HashSet<Subscription>());
}
Set<Subscription> subs = m_persistentSubscriptions.get(clientID);
if (!subs.contains(newSubscription)) {
subs.add(newSubscription);
m_persistentSubscriptions.put(clientID, subs);
}
}
public void removeAllSubscriptions(String clientID) {
//To change body of implemented methods use File | Settings | File Templates.
m_persistentSubscriptions.remove(clientID);
}
public List<Subscription> retrieveAllSubscriptions() {
return Collections.EMPTY_LIST;
List<Subscription> allSubscriptions = new ArrayList<Subscription>();
for (Map.Entry<String, Set<Subscription>> entry : m_persistentSubscriptions.entrySet()) {
allSubscriptions.addAll(entry.getValue());
}
return allSubscriptions;
}
public void close() {
@@ -231,7 +231,7 @@ public class ProtocolProcessorTest {
}
}
};
subs.init(m_storageService);
subs.init(new DummyStorageService());
//simulate a connect that register a clientID to an IoSession
IMessaging mockedMessaging = mock(IMessaging.class);