001/*
002  GRANITE DATA SERVICES
003  Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.
004
005  This file is part of Granite Data Services.
006
007  Granite Data Services is free software; you can redistribute it and/or modify
008  it under the terms of the GNU Library General Public License as published by
009  the Free Software Foundation; either version 2 of the License, or (at your
010  option) any later version.
011
012  Granite Data Services is distributed in the hope that it will be useful, but
013  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
014  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
015  for more details.
016
017  You should have received a copy of the GNU Library General Public License
018  along with this library; if not, see <http://www.gnu.org/licenses/>.
019*/
020
021package org.granite.gravity;
022
023import java.util.TimerTask;
024
025import org.granite.logging.Logger;
026
027/**
028 * @author Franck WOLFF
029 */
030public class ChannelTimerTask extends TimerTask {
031
032    private static final Logger log = Logger.getLogger(ChannelTimerTask.class);
033
034        private final Gravity gravity;
035        private final String channelId;
036        
037        public ChannelTimerTask(Gravity gravity, String channelId) {
038                this.gravity = gravity;
039                this.channelId = channelId;
040        }
041
042        @Override
043        public void run() {
044                log.debug("Removing channel: %s...", channelId);
045                try {
046                        gravity.initThread(null, null);
047                        gravity.removeChannel(channelId);
048                }
049                finally {
050                        gravity.releaseThread();
051                }
052                log.debug("Channel: %s removed.", channelId);
053        }
054
055        @Override
056        public String toString() {
057                return getClass().getName() + " {channelId=" + channelId + "}";
058        }
059}