/*******************************************************************************
* Copyright (c) 2011, 2016 Eurotech and/or its affiliates
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eurotech
*******************************************************************************/
package org.eclipse.kura.net.admin.modem;
import java.util.Hashtable;
import org.eclipse.kura.net.modem.CellularModem;
import org.eclipse.kura.net.modem.ModemDevice;
import org.eclipse.kura.net.modem.ModemTechnologyType;
public interface CellularModemFactory {
/**
* Obtains generic modem service
*
* @param modemDevice
* - modem device as <code>ModemDevice</code>
* @param platform
* - hardware platform as {@link String}
* @return generic modem service as <code>CellularModemService</code>
* @throws Exception
*/
public CellularModem obtainCellularModemService(ModemDevice modemDevice, String platform) throws Exception;
/**
* Reports modem services available
*
* @return list of modem services as <code>Hashtable<String, CellularModemService></code>
* with the usb port as the key
*/
public Hashtable<String, ? extends CellularModem> getModemServices();
/**
* Releases modem service specified by its USB address
*
* @param usbPortAddress
*/
public void releaseModemService(String usbPortAddress);
/**
* Reports type of modem service
*
* @return type of modem service as <code>ModemTechnologyType</code>
*/
@Deprecated
public ModemTechnologyType getType();
}