aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/GenericPipelineFactory.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2013-01-15 00:19:39 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2013-01-15 00:19:39 +1300
commitb5bd3e35f563825c9d40eaa04c02bc6397029219 (patch)
tree05684875856d3908fdec3c582ecbf2153a5bdfb8 /src/org/traccar/GenericPipelineFactory.java
parent38fbc3e872717a1179abd00a48b600b489f9fead (diff)
downloadtrackermap-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.java123
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