riku
2020-06-11 585fb9b67dc81f9e14f2cbf59f1c3a02eb4fe98f
src/main/kotlin/com/flightfeather/uav/socket/DeviceSession.kt
@@ -1,10 +1,11 @@
package com.flightfeather.uav.socket
import com.flightfeather.uav.socket.bean.AirTypeData
import io.netty.channel.ChannelHandlerContext
import java.util.concurrent.ConcurrentHashMap
/**
 * 用于保存连接的设备及对应的session通道
 * 用于保存连接的设备及对应的session通道以及对应的专属信息
 * Date: 2019.8.27
 * @author riku
 */
@@ -12,6 +13,8 @@
    companion object{
        private val deviceMap = ConcurrentHashMap<String, ChannelHandlerContext?>()
        private val typeMap = ConcurrentHashMap<String, List<AirTypeData>>()
        private const val DEFAULT_DEVICE = "default_device"
        fun saveDevice(deviceCode: String?, channel: ChannelHandlerContext?) {
            deviceCode?.let {
@@ -25,5 +28,21 @@
            else
                null
        }
        fun saveAirType(deviceCode: String?, types: List<AirTypeData>) {
            if (deviceCode == null) {
                typeMap[DEFAULT_DEVICE] = types
            } else {
                typeMap[deviceCode] = types
            }
        }
        fun getAirType(deviceCode: String?): List<AirTypeData>? {
            return if (typeMap.containsKey(deviceCode)) {
                typeMap[deviceCode]
            } else {
                null
            }
        }
    }
}