This interface allows products describe themselves for the benefit
of development tools such as IDE's. For example, a tool
can read the information provided by a product that implements this
interface and generate an eclipse plugin that leverages the product's
"resources".
By expressing the product's information in this interface, a product
can be delivered into multiple development tools without explicit
knowledge of these tools. For example, an online "product repository"
can extract sufficient information from this interface to enable it
to provide a searchable catalog of interesting products.
struct IProduct.HelpToc |
|
Help table of contents (TOC) element
metaonly struct HelpToc {
String label;
// Help element description
String filePath;
// Path to help doc
Bool tocFile;
// Indicates whether element is a TOC file
};
FIELDS
label
Summary description of help element
filePath
Path to help documentation relative to
directory specified in docsLoc
tocFile
Flag indicates whether the element is a
table of content(TOC) file. Tools may
process TOC files in a special way. For
example a tool to generate eclipse plugins may
want to copy the TOC file in the plugin folder
for integrating with eclipse help.
DETAILS
A help element is a file inside the product that may be referenced
from a global table of contents.
struct IProduct.Target |
|
Structure containing information on RTSC targets
metaonly struct Target {
String deviceNamePattern;
// Device name regex eg. MSP430*
String deviceFamilyPattern;
// Device family regex eg. C6*
String packageName;
// Package containing RTSC target
String baseTargetName;
// Name of RTSC target module
};
FIELDS
deviceNamePattern
A regular expression for device names
deviceFamilyPattern
A regular expression for device families
packageName
The name of a package containing a
target module that can be used with
the devices that match the
device name and family patterns
baseTargetName
The name of the module
(without the package prefix) in
the package named by packageName.
DETAILS
Products may specify RTSC target modules by associating
them with device name and family regular expressions. This
information may be leveraged by tools to derive the RTSC target
given a device name and family. Devices implement the
xdc.platform.ICpuDataSheet interface. Devices may be
grouped in a family and delivered as a package.
For example, the device module TMS320DA830 in the package
ti.catalog.C6000 may be associated with a RTSC target
ti.targets.C674 by setting deviceNamePattern to TMS320DA8*,
deviceFamilyPattern to C6*, packageName to
ti.targets and baseTargetName to C674.
struct IProduct.UrlDescriptor |
|
URL Descriptor structure
metaonly struct UrlDescriptor {
String url;
// Uniform Resource Locator(URL)
String text;
// Summary text for the URL
};
FIELDS
url
Uniform Resource Locator(URL)
text
Summary text for the URL
config IProduct.bundleName // module-wide |
|
Product bundle name
config String bundleName;
DETAILS
Product bundle name is embedded in the top level folder name of
the product. Example: The top level folder for XDCtools version
3.16.02.31-eng is xdctools_3_16_02_31-eng. In this case the
bundle name is xdctools.
The bundle name maybe used by tools to discover the product
installed on a filesystem.
config IProduct.companyName // module-wide |
|
Name of company releasing product
config String companyName;
DETAILS
Example : "Texas Instruments"
config IProduct.copyRightNotice // module-wide |
|
Copyright notice for product
config String copyRightNotice;
config IProduct.docsLocArr // module-wide |
|
Directories containing documents in the product
config String docsLocArr[];
DETAILS
Directories are specified relative to the product installation
directory.
config IProduct.exclusive // module-wide |
|
Indicates whether product allows existence of multiple
versions in a system
config Bool exclusive = false;
DETAILS
When flag is set to true it indicates that only one
version of the product can be active in the system. Otherwise
the system can handle multiple versions of the same product.
config IProduct.featureId // module-wide |
|
A unique feature id
DETAILS
A feature maybe used by a system to install product upgrades.
Typically a system will look at various versions of a
feature available in the system and allow the user to upgrade
to the latest version. The product developer can use the featureId
to manage the granularity of product upgrades in a system. For
example the version 3.20.0.00 for product
org.eclipse.rtsc.xdctools.product may have the featureId
org.eclipse.rtsc.xdctools.product_3.20.
The product developer may allow the upgrade system to pick up
patch releases to 3.20.0.00 release by specifying different
versions of the product (eg. 3.20.0.01) with featureId
org.eclipse.rtsc.xdctools.product_3.20
config IProduct.helpTocArr // module-wide |
|
Array of table of contents elements in product
DETAILS
Tools generating table of contents are required
to preserve the order of elements specified in this array
config IProduct.id // module-wide |
|
A unique product id
DETAILS
For example, product developers may choose to follow namespace
conventions for Java packages or Eclipse plugins to specify a
unique id like org.eclipse.rtsc.xdctools.product.
config IProduct.licenseDescriptor // module-wide |
|
License information for product
VALUES
url
field should contain the URL containing the
license text.
text
field should contain a summary description of the license
config IProduct.name // module-wide |
|
Product name
DETAILS
String containing product name eg. System BIOS
config IProduct.otherFiles // module-wide |
|
Array of paths to files that describe the product
config String otherFiles[];
DETAILS
A product may wish to supply files that describing certain aspects
of itself. For example a product may provide text, images and video
files that provide branding information for the product.
These files may then be consumed by tools like IDE's via
hooks defined in the IDE framework.
The file path is defined relative to the directory containing the
implementation of this interface
config IProduct.productDescriptor // module-wide |
|
Product description
VALUES
url
the url field should contain the URL of the organization
releasing the product.
text
the text field should contain summary description of
the product
config IProduct.productViewModule // module-wide |
|
Name of module implementing xdc.tools.product.IProductView
config String productViewModule;
DETAILS
Product view module should be delivered
in the repositories defined in
repositoryArr
config IProduct.repositoryArr // module-wide |
|
Repositories contained in product
config String repositoryArr[];
DETAILS
Repositories are specified relative to the product installation
directory.
config IProduct.targetArr // module-wide |
|
RTSC target modules contained in product
DETAILS
The RTSC target modules should be delivered
in the repositories defined in
repositoryArr
config IProduct.templateModule // module-wide |
|
Name of module implementing xdc.tools.product.IProductTemplate
config String templateModule;
DETAILS
Template module should be delivered
in the repositories defined in
repositoryArr
config IProduct.tocIndexFile // module-wide |
|
Top level index file referred in table of contents
config String tocIndexFile;
config IProduct.updateSite // module-wide |
|
Update site for product
VALUES
url
the url field should contain the URL containing
product upgrades.
text
the text field should contain summary description of
the update site
config IProduct.version // module-wide |
|
Product version
DETAILS
The product version should follow the format
-major.minor.service.qualifier where
major,minor and service are integers and
qualifier is a string. Example - 3.16.02.31-eng.
Products may specify their own guidelines for
updating major,minor,service and qualifier portions of the
version number as long as they are unique for the product.
Products may also choose to follow popular versioning conventions
like those followed for versioning Eclipse plugins.