/*******************************************************************************
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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
*******************************************************************************/
package gov.redhawk.ide;
import mil.jpeojtrs.sca.dcd.DeviceConfiguration;
import mil.jpeojtrs.sca.sad.SoftwareAssembly;
import mil.jpeojtrs.sca.spd.SoftPkg;
/**
* The Interface ITargetPlatform.
*/
public interface ITargetPlatform {
/**
* Get's the location of the target platform as specified in the
* preferences. The platform is only read when the user requests a Reload or
* changes the platform location.
*
* This location may be file URL or a CORBA URL to a DomainManager. For
* example: file:///sdr corbaloc::host:port/DomainName1/DomainManager
*
* @return the target platforms main location
*/
String getLocation();
/**
* Get's an array of paths to SAD files, relative to the taget platform
* location.
*
* /waveforms/ossie_demo/ossie_demo.sad.xml
*
* If the location is a CORBA accessed, domain these strings are paths that
* can be accessed via the DomainManagers fileMgr.open() operations. See SCA
* specification 3.1.3.4.2.5.9.5 to understand how paths are handled by
* FileManagers
*
* @return the paths to the SAD files.
*/
String[] getWaveformSadFiles();
/**
* Get's an array of paths to SPD files, relative to the taget platform
* location.
*
* /xml/am_demod/am_demod.spd.xml
*
* Although both components and devices are described in SPD files,
* components are differentiated from Devices because they do not implement
* the Device interface. As such, you must parse the SCD file to distinguish
* between the two.
*
* If the location is a CORBA accessed, domain these strings are paths that
* can be accessed via the DomainManagers fileMgr.open() operations. See SCA
* specification 3.1.3.4.2.5.9.5 to understand how paths are handled by
* FileManagers
*
* @return the paths to the component SPD files.
*/
String[] getComponentSpdFiles();
/**
* Get's an array of paths to SPD files, relative to the taget platform
* location.
*
* /xml/am_demod/am_demod.spd.xml
*
* Although both components and devices are described in SPD files,
* components are differentiated from Devices because they do not implement
* the Device interface. As such, you must parse the SCD file to distinguish
* between the two.
*
* If the location is a CORBA accessed, domain these strings are paths that
* can be accessed via the DomainManagers fileMgr.open() operations. See SCA
* specification 3.1.3.4.2.5.9.5 to understand how paths are handled by
* FileManagers
*
* @return the paths to the device SPD files.
*/
String[] getDeviceSpdFiles();
/**
* Get's an array of paths to DCD files, relative to the taget platform
* location.
*
* /nodes/default_GPP_node/DeviceMander.dcd.xml
*
* If the location is a CORBA accessed, domain these strings are paths that
* can be accessed via the DomainManagers fileMgr.open() operations. See SCA
* specification 3.1.3.4.2.5.9.5 to understand how paths are handled by
* FileManagers
*
* @return the paths to the device SPD files.
*/
String[] getNodeDcdFiles();
/**
* Get's the list of components in the target platform.
*
* @return the components
*/
SoftPkg[] getComponents();
/**
* Get's the component at the location referenced by localFile.
*
* @param localFile
* the localfile path
* @return the component
*/
SoftPkg getComponent(String localFile);
/**
* Get's the list of devices in the target platform.
*
* @return the devices
*/
SoftPkg[] getDevices();
/**
* Get's the list of waveforms in the target platform.
*
* @return the waveforms
*/
SoftwareAssembly[] getWaveforms();
/**
* Returns the list of nodes in the taget platform.
*
* @return the nodes
*/
DeviceConfiguration[] getNodes();
/**
* Add a listener who is notified when the target platform changes.
*
* @param listener
* the listener
*/
void addTargetPlatformChangeListener(ITargetPlatformChangeListener listener);
/**
* Remove a listener who is notified when the target platform changes.
*
* @param listener
* the listener
*/
void removeTargetPlatformChangeListener(
ITargetPlatformChangeListener listener);
}