package cgl.iotcloud.core;
import cgl.iotcloud.core.msg.MessageContext;
import cgl.iotcloud.core.transport.Channel;
import cgl.iotcloud.core.transport.Direction;
import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public abstract class AbstractConfigurator implements Configurator {
protected Channel createChannel(String name, Map properties,
Direction direction, int queueSize) {
BlockingQueue<MessageContext> inMassages = new ArrayBlockingQueue<MessageContext>(queueSize);
BlockingQueue<MessageContext> outMassages = new ArrayBlockingQueue<MessageContext>(queueSize);
Channel channel = new Channel(name, direction);
channel.setInQueue(inMassages);
channel.setOutQueue(outMassages);
channel.addProperties(properties);
return channel;
}
protected Channel createOutChannel(String name, Map properties) {
BlockingQueue<MessageContext> inMassages = new ArrayBlockingQueue<MessageContext>(64);
BlockingQueue<MessageContext> outMassages = new ArrayBlockingQueue<MessageContext>(64);
Channel channel = new Channel(name, Direction.OUT);
channel.setInQueue(inMassages);
channel.setOutQueue(outMassages);
channel.addProperties(properties);
return channel;
}
protected Channel createInChannel(String name, Map properties) {
BlockingQueue<MessageContext> inMassages = new ArrayBlockingQueue<MessageContext>(64);
BlockingQueue<MessageContext> outMassages = new ArrayBlockingQueue<MessageContext>(64);
Channel channel = new Channel(name, Direction.IN);
channel.setInQueue(inMassages);
channel.setOutQueue(outMassages);
channel.addProperties(properties);
return channel;
}
}