diff options
author | Anton Tananaev <anton@traccar.org> | 2022-05-30 18:39:50 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-05-30 18:39:50 -0700 |
commit | 4dc602d8a7700924b0117424533046b28f4a8df4 (patch) | |
tree | d1f5f1edcd8db36716d3d1f44cd57d69d0e6d996 /src/main/java/org/traccar/session/DeviceSession.java | |
parent | 9a68d1045f30bf8397d6cbf90df8f42f40979591 (diff) | |
download | trackermap-server-4dc602d8a7700924b0117424533046b28f4a8df4.tar.gz trackermap-server-4dc602d8a7700924b0117424533046b28f4a8df4.tar.bz2 trackermap-server-4dc602d8a7700924b0117424533046b28f4a8df4.zip |
Combine active device and session
Diffstat (limited to 'src/main/java/org/traccar/session/DeviceSession.java')
-rw-r--r-- | src/main/java/org/traccar/session/DeviceSession.java | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/session/DeviceSession.java b/src/main/java/org/traccar/session/DeviceSession.java index 0d5b283fe..009f90f5a 100644 --- a/src/main/java/org/traccar/session/DeviceSession.java +++ b/src/main/java/org/traccar/session/DeviceSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 - 2018 Anton Tananaev (anton@traccar.org) + * Copyright 2016 - 2022 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,21 +15,57 @@ */ package org.traccar.session; +import io.netty.channel.Channel; +import io.netty.handler.codec.http.HttpRequestDecoder; +import org.traccar.BasePipelineFactory; +import org.traccar.Protocol; +import org.traccar.model.Command; + +import java.net.SocketAddress; import java.util.HashMap; import java.util.Map; public class DeviceSession { private final long deviceId; + private final String uniqueId; + private final Protocol protocol; + private final Channel channel; + private final SocketAddress remoteAddress; - public DeviceSession(long deviceId) { + public DeviceSession( + long deviceId, String uniqueId, Protocol protocol, Channel channel, SocketAddress remoteAddress) { this.deviceId = deviceId; + this.uniqueId = uniqueId; + this.protocol = protocol; + this.channel = channel; + this.remoteAddress = remoteAddress; } public long getDeviceId() { return deviceId; } + public String getUniqueId() { + return uniqueId; + } + + public Channel getChannel() { + return channel; + } + + public SocketAddress getRemoteAddress() { + return remoteAddress; + } + + public boolean supportsLiveCommands() { + return BasePipelineFactory.getHandler(channel.pipeline(), HttpRequestDecoder.class) == null; + } + + public void sendCommand(Command command) { + protocol.sendDataCommand(channel, remoteAddress, command); + } + public static final String KEY_TIMEZONE = "timezone"; private final Map<String, Object> locals = new HashMap<>(); |