diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2013-01-15 00:19:39 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2013-01-15 00:19:39 +1300 |
commit | b5bd3e35f563825c9d40eaa04c02bc6397029219 (patch) | |
tree | 05684875856d3908fdec3c582ecbf2153a5bdfb8 /src/org/traccar/GenericPipelineFactory.java | |
parent | 38fbc3e872717a1179abd00a48b600b489f9fead (diff) | |
download | trackermap-server-b5bd3e35f563825c9d40eaa04c02bc6397029219.tar.gz trackermap-server-b5bd3e35f563825c9d40eaa04c02bc6397029219.tar.bz2 trackermap-server-b5bd3e35f563825c9d40eaa04c02bc6397029219.zip |
Pass ServerManager to every protocol decoder
Diffstat (limited to 'src/org/traccar/GenericPipelineFactory.java')
-rw-r--r-- | src/org/traccar/GenericPipelineFactory.java | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/org/traccar/GenericPipelineFactory.java b/src/org/traccar/GenericPipelineFactory.java deleted file mode 100644 index 4537ac4f7..000000000 --- a/src/org/traccar/GenericPipelineFactory.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2012 Anton Tananaev (anton.tananaev@gmail.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar; - -import java.net.InetSocketAddress; -import org.jboss.netty.buffer.ChannelBuffer; -import org.jboss.netty.buffer.ChannelBuffers; -import org.jboss.netty.channel.*; -import org.jboss.netty.handler.logging.LoggingHandler; -import org.jboss.netty.handler.timeout.IdleStateHandler; -import org.traccar.geocode.ReverseGeocoder; -import org.traccar.helper.Log; -import org.traccar.model.DataManager; - -/** - * Generic pipeline factory - */ -public abstract class GenericPipelineFactory implements ChannelPipelineFactory { - - private TrackerServer server; - private DataManager dataManager; - private Boolean loggerEnabled; - private Integer resetDelay; - private ReverseGeocoder reverseGeocoder; - - /** - * Open channel handler - */ - protected class OpenChannelHandler extends SimpleChannelHandler { - - private TrackerServer server; - - public OpenChannelHandler(TrackerServer server) { - this.server = server; - } - - @Override - public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) { - server.getChannelGroup().add(e.getChannel()); - } - } - - /** - * Logging using global logger - */ - protected class StandardLoggingHandler extends LoggingHandler { - - static final String HEX_CHARS = "0123456789ABCDEF"; - - @Override - public void log(ChannelEvent e) { - if (e instanceof MessageEvent) { - MessageEvent event = (MessageEvent) e; - StringBuilder msg = new StringBuilder(); - - msg.append("[").append(((InetSocketAddress) e.getChannel().getLocalAddress()).getPort()).append(" - "); - msg.append(((InetSocketAddress) event.getRemoteAddress()).getAddress().getHostAddress()).append("]"); - - // Append hex message - if (event.getMessage() instanceof ChannelBuffer) { - msg.append(" - (HEX: "); - msg.append(ChannelBuffers.hexDump((ChannelBuffer) event.getMessage())); - msg.append(")"); - } - - Log.fine(msg.toString()); - } else if (e instanceof ExceptionEvent) { - ExceptionEvent event = (ExceptionEvent) e; - Log.warning(event.getCause().toString()); - } - // TODO: handle other events - } - } - - public GenericPipelineFactory(ServerManager serverManager, TrackerServer server, String protocol) { - this.server = server; - dataManager = serverManager.getDataManager(); - loggerEnabled = serverManager.isLoggerEnabled(); - reverseGeocoder = serverManager.getReverseGeocoder(); - - String resetDelayProperty = serverManager.getProperties().getProperty(protocol + ".resetDelay"); - if (resetDelayProperty != null) { - resetDelay = Integer.valueOf(resetDelayProperty); - } - } - - protected DataManager getDataManager() { - return dataManager; - } - - protected abstract void addSpecificHandlers(ChannelPipeline pipeline); - - @Override - public ChannelPipeline getPipeline() { - ChannelPipeline pipeline = Channels.pipeline(); - if (resetDelay != null) { - pipeline.addLast("idleHandler", new IdleStateHandler(GlobalTimer.getTimer(), resetDelay, 0, 0)); - } - pipeline.addLast("openHandler", new OpenChannelHandler(server)); - if (loggerEnabled) { - pipeline.addLast("logger", new StandardLoggingHandler()); - } - addSpecificHandlers(pipeline); - if (reverseGeocoder != null) { - pipeline.addLast("geocoder", new ReverseGeocoderHandler(reverseGeocoder)); - } - pipeline.addLast("handler", new TrackerEventHandler(dataManager)); - return pipeline; - } -}
\ No newline at end of file |