* A Module object represents a row in the modules view.
* Two attributes are mandatory: an id identifies a module in the modules view and is used in a ModuleEvent for identifying a module for adding, updating or deleting.
* The name is used to minimally render the module in the UI.
*
* Additional attributes can be added to the module. They will show up in the module View if they have a corresponding ColumnDescriptor.
*
* To avoid an unnecessary proliferation of additional attributes with similar semantics but different names
* we recommend to re-use attributes from the 'recommended' list below first, and only introduce new attributes if nothing appropriate could be found.
*/
exportinterfaceModule{
/** Unique identifier for the module. */
id:number|string;
/** A name of the module. */
name:string;
// optional but recommended attributes.
// always try to use these first before introducing additional attributes.
/** Logical full path to the module. The exact definition is implementation defined, but usually this would be a full path to the on-disk file for the module. */
path?:string
/** True if the module is optimized. */
isOptimized?:boolean
/** True if the module is considered 'user code' by a debugger that supports 'Just My Code'. */
isUseCode?:boolean
/** Version of Module. */
version?:string
/** User understandable description of if symbols were found for the module (ex: 'Symbols Loaded', 'Symbols not found', etc */
symbolStatus?:string
/** Logical full path to the symbol file. The exact definition is implementation defined. */
symbolFilePath?:string
/** Module created or modified. */
dateTimeStamp?:string
/** Address range covered by this module. */
addressRange?:string
}
/**
* A ColumnDescriptor specifies what module attribute to show in a column of the ModulesView, how to format it, and what the column's label should be.
* It is only used if the underlying UI actually supports this level of customization.
*/
exportinterfaceColumnDescriptor{
/** Name of the attribute rendered in this column. */
attributeName:string;
/** Header UI label of column. */
label:string;
/** Format to use for the rendered values in this column. TBD how the format strings looks like. */
format:string;
/** Width of this column in characters (hint only). */
width:number;
}
/**
* The ModulesViewDescriptor is the container for all declarative configuration options of a ModuleView.
* For now it only specifies the columns to be shown in the modules view.