001/** 002 * GRANITE DATA SERVICES 003 * Copyright (C) 2006-2013 GRANITE DATA SERVICES S.A.S. 004 * 005 * This file is part of the Granite Data Services Platform. 006 * 007 * *** 008 * 009 * Community License: GPL 3.0 010 * 011 * This file is free software: you can redistribute it and/or modify 012 * it under the terms of the GNU General Public License as published 013 * by the Free Software Foundation, either version 3 of the License, 014 * or (at your option) any later version. 015 * 016 * This file is distributed in the hope that it will be useful, but 017 * WITHOUT ANY WARRANTY; without even the implied warranty of 018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 019 * GNU General Public License for more details. 020 * 021 * You should have received a copy of the GNU General Public License 022 * along with this program. If not, see <http://www.gnu.org/licenses/>. 023 * 024 * *** 025 * 026 * Available Commercial License: GraniteDS SLA 1.0 027 * 028 * This is the appropriate option if you are creating proprietary 029 * applications and you are not prepared to distribute and share the 030 * source code of your application under the GPL v3 license. 031 * 032 * Please visit http://www.granitedataservices.com/license for more 033 * details. 034 */ 035package org.granite.gravity.udp; 036 037import java.io.IOException; 038import java.net.InetSocketAddress; 039 040import org.granite.gravity.AbstractChannel; 041 042/** 043 * @author Franck WOLFF 044 */ 045public abstract class AbstractUdpChannel implements UdpChannel { 046 047 protected UdpChannelFactory channelFactory = null; 048 protected AbstractChannel gravityChannel = null; 049 protected InetSocketAddress address = null; 050 051 public AbstractUdpChannel(UdpChannelFactory channelFactory, AbstractChannel gravityChannel, InetSocketAddress address) { 052 if (channelFactory == null || gravityChannel == null) 053 throw new NullPointerException(); 054 055 this.channelFactory = channelFactory; 056 this.gravityChannel = gravityChannel; 057 this.address = address; 058 } 059 060 public AbstractChannel getGravityChannel() { 061 return gravityChannel; 062 } 063 064 public int write(byte[] data) throws IOException { 065 return write(data, 0, data.length); 066 } 067 068 public void close() { 069 channelFactory = null; 070 gravityChannel = null; 071 address = null; 072 } 073}