/*
 * Copyright (C) Bigly Software, Inc, All Rights Reserved.
 *
 * 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; either version 2 of the License, or
 * (at your option) any later version.
 *
 * 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.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 */

package com.biglybt.plugin.upnp;

import java.net.InetAddress;

import com.biglybt.net.upnp.UPnPService;
import com.biglybt.net.upnp.services.UPnPSpecificService;
import com.biglybt.pif.logging.LoggerChannel;

public interface 
UPnPPluginService
{
	public UPnPSpecificService
	getSpecificService();
	
	public UPnPService
	getGenericService();
	
	public String
	getExternalIPAddress();
	
	public void
	checkMapping(
		LoggerChannel		log,
		UPnPMapping			mapping );
	
	public void
	removeMapping(
		LoggerChannel		log,
		UPnPMapping			mapping,
		boolean				end_of_day );
	
	public ServiceMapping[]
	getMappings();
	
	public String
	getConnectionType();
	
	public String
	getInfo();
	
	public String
	getString();
	
	public interface
	ServiceMapping
	{
		public boolean
		isExternal();
	
		public boolean
		isTCP();
		
		public int
		getPort();
		
		public InetAddress
		getInternalHost();
	}
}
