package com.llgc.publisher; import java.util.LinkedList; import java.util.Queue; public class PubSubServer { private Queue buffer; private Queue subscribers; public PubSubServer() { buffer = new LinkedList(); subscribers = new LinkedList(); } public void forward() { while (!buffer.isEmpty()) { Message tempMessage = buffer.poll(); for (Subscriber subscriber : subscribers) { for (String topic : subscriber.getTopics()) { if (tempMessage.getTopic().equals(topic)) { subscriber.addMessage(tempMessage); } } } } } public void addSubscriber(Subscriber sub) { subscribers.add(sub); } public void addBuffer(Message message) { buffer.add(message); } }