// 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.Channel; /** * This interface provides Netty handlers executing in worker threads with * access to sequence server control methods. * * @author Brett Henderson */ public interface SequenceServerControl { /** * Allows a Netty handler to request the latest sequence number from the * controller. * * @return The latest sequence number. */ long getLatestSequenceNumber(); /** * Allows a Netty handler to notify the controller that the channel is ready * for more data. If the controller has new sequence information available * it will send it, otherwise it will add the channel to the waiting list. * * @param channel * The client channel. * @param nextSequenceNumber * The sequence number that the client needs to be sent next. * @param follow * If true, the channel will be held open and updated sequences * sent as they arrive. */ void determineNextChannelAction(Channel channel, long nextSequenceNumber, boolean follow); /** * Allows a Netty handler to register a channel with the main controller. * This allows the controller to close the channel when the server shuts * down. * * @param channel * The channel to be registered. */ void registerChannel(Channel channel); /** * Gets the runtime statistics of the server. * * @return The server statistics. */ ServerStatistics getStatistics(); }