/* license-start * * Copyright (C) 2008 - 2013 Crispico, <http://www.crispico.com/>. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details, at <http://www.gnu.org/licenses/>. * * Contributors: * Crispico - Initial API and implementation * * license-end */ package org.flowerplatform.blazeds.heartbeat; import static org.flowerplatform.blazeds.heartbeat.HeartbeatStatefulService.logger; import org.flowerplatform.blazeds.channel.BlazedsCommunicationChannel; import org.flowerplatform.communication.CommunicationPlugin; /** * Channel Observer Task scheduled to warn the client that it will be disconnected. * @author Sorin * */ public class WarnAboutNoActivityTask extends HeartbeatTask { public WarnAboutNoActivityTask(BlazedsCommunicationChannel channel) { super("Warn because No Activity happened on the Client", channel, noActivityOnClientInterval - warnAboutNoActivityInterval); } /** * */ @Override public void runWithChannelLocked() { if (logger.isDebugEnabled()) logger.debug("Client : {} did not have any activity for at least {} ms. Warning client about disconnection", channel, noActivityOnClientInterval - warnAboutNoActivityInterval); HeartbeatStatefulService heartbeatStatefulService = (HeartbeatStatefulService) CommunicationPlugin.getInstance().getServiceRegistry().getService(HeartbeatStatefulService.SERVICE_ID); if (heartbeatStatefulService != null) { heartbeatStatefulService.warnAboutNoActivity(channel, warnAboutNoActivityInterval / 1000); // number of seconds until disconnect } } }