// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.replicationhttp.v0_6.impl;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.handler.codec.http.HttpClientCodec;
/**
* Builds Netty channel pipelines for new connections to servers.
*
*
* @author Brett Henderson
*/
public abstract class SequenceClientChannelPipelineFactory implements
ChannelPipelineFactory {
private SequenceClientControl centralControl;
/**
* Creates a new instance.
*
* @param control
* Provides the Netty handlers with access to the controller.
*/
public SequenceClientChannelPipelineFactory(SequenceClientControl control) {
this.centralControl = control;
}
/**
* Creates a handler to be used for processing channel messages.
*
* @param control
* The control object used to send event notifications.
* @return The channel handler.
*/
protected abstract SequenceClientHandler createHandler(SequenceClientControl control);
@Override
public ChannelPipeline getPipeline() throws Exception {
return Channels.pipeline(new HttpClientCodec(), createHandler(centralControl));
}
}