package cc.blynk.utils; import cc.blynk.server.core.session.HardwareStateHolder; import cc.blynk.server.handlers.BaseSimpleChannelInboundHandler; import io.netty.channel.Channel; /** * Used instead of Netty's DefaultAttributeMap as it faster and * doesn't involves any synchronization at all. * * The Blynk Project. * Created by Dmitriy Dumanskiy. * Created on 13.09.15. */ public class StateHolderUtil { public static HardwareStateHolder getHardState(Channel channel) { final BaseSimpleChannelInboundHandler handler = channel.pipeline().get(BaseSimpleChannelInboundHandler.class); return handler == null ? null : (HardwareStateHolder) handler.getState(); } public static boolean isSameDash(Channel channel, int dashId) { final BaseSimpleChannelInboundHandler handler = channel.pipeline().get(BaseSimpleChannelInboundHandler.class); return ((HardwareStateHolder) handler.getState()).dashId == dashId; } public static boolean isSameDashAndDeviceId(Channel channel, int dashId, int deviceId) { final BaseSimpleChannelInboundHandler handler = channel.pipeline().get(BaseSimpleChannelInboundHandler.class); if (handler == null) { return false; } final HardwareStateHolder hardwareStateHolder = (HardwareStateHolder) handler.getState(); return hardwareStateHolder.dashId == dashId && hardwareStateHolder.deviceId == deviceId; } }