package com.sv.netty.config;

import io.netty.util.internal.PlatformDependent;

import java.util.concurrent.ConcurrentMap;

/**
 * 通道类型全局存储
 *
 * @author Demon
 * @since 09/01/2018
 */
public class ChannelTypeCache {

    public static final Integer TCP = 1;

    public static final Integer WEB_SOCKET = 2;

    /**
     * 存储用户和通道类型
     * value: 1Tcp 2WebSocket
     */
    public static final ConcurrentMap<Integer, Integer> channelTypes = PlatformDependent.newConcurrentHashMap();

    /**
     * 设置通道类型
     *
     * @param memberId 会员编号
     * @param channelType 通道类型：1Tcp 2WebSocket
     */
    public static void putChannelType(Integer memberId, Integer channelType) {
        channelTypes.put(memberId, channelType);
    }

    /**
     * 获取通道类型
     *
     * @param memberId 会员编号
     * @return 通道类型：1Tcp 2WebSocket
     */
    public static Integer getChannelType(Integer memberId) {
        return channelTypes.get(memberId);
    }

    /**
     * 判断是否存在用户
     *
     * @param memberId 会员编号
     * @return 是否存在用户
     */
    public static boolean contains(Integer memberId) {
        return channelTypes.containsKey(memberId);
    }

    /**
     * 删除通道类型
     *
     * @param memberId 会员编号
     */
    public static void removeChannelType(Integer memberId) {
        channelTypes.remove(memberId);
    }
}
