aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/handler/FilterHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar/handler/FilterHandler.java')
-rw-r--r--src/main/java/org/traccar/handler/FilterHandler.java25
1 files changed, 7 insertions, 18 deletions
diff --git a/src/main/java/org/traccar/handler/FilterHandler.java b/src/main/java/org/traccar/handler/FilterHandler.java
index a15d3ffad..4cc6233d0 100644
--- a/src/main/java/org/traccar/handler/FilterHandler.java
+++ b/src/main/java/org/traccar/handler/FilterHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2014 - 2023 Anton Tananaev (anton@traccar.org)
+ * Copyright 2014 - 2024 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,7 @@
*/
package org.traccar.handler;
-import io.netty.channel.ChannelHandler;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelInboundHandlerAdapter;
+import jakarta.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.traccar.config.Config;
@@ -36,13 +34,9 @@ import org.traccar.storage.query.Condition;
import org.traccar.storage.query.Order;
import org.traccar.storage.query.Request;
-import jakarta.inject.Inject;
-import jakarta.inject.Singleton;
import java.util.Date;
-@Singleton
-@ChannelHandler.Sharable
-public class FilterHandler extends ChannelInboundHandlerAdapter {
+public class FilterHandler extends BasePositionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(FilterHandler.class);
@@ -277,16 +271,11 @@ public class FilterHandler extends ChannelInboundHandlerAdapter {
}
@Override
- public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
- if (msg instanceof Position) {
- Position position = (Position) msg;
- if (enabled && filter(position)) {
- ctx.writeAndFlush(new AcknowledgementHandler.EventHandled(position));
- } else {
- ctx.fireChannelRead(position);
- }
+ public void handlePosition(Position position, Callback callback) {
+ if (enabled && filter(position)) {
+ callback.processed(null);
} else {
- super.channelRead(ctx, msg);
+ callback.processed(position);
}
}