Debugging Tools for Windows

Creating Your Own Provider Module

In general, to create your own provider module, you must implement the following set of interfaces.

$module::SimpleUsage()
Purpose
Displays simple module usage information to STDOUT.
Parameters
None
Return Value
None

$module::VerboseUsage()
Purpose
Displays in-depth module usage information to STDOUT.
Parameters
None
Return Value
None

$objref = $module::new(@CommandArguments)
Purpose
Initializes an instance of the provider module.
Parameters
@CommandArguments
All @ARGV arguments that are not recognized by ssindex.cmd as being general arguments.

Return Value
A reference that can be used in later operations.

$objref->GatherFileInformation($SourcePath, $ServerHashReference)
Purpose
Enables the module to gather the required source-indexing information for the directory specified by the $SourcePath parameter. The module should not assume that this entry is called only once for each object instancebecause SSIndex may call it multiple times for different paths.
Parameters
$SourcePath
The local directory containing the source to be indexed.
$ServerHashReference
A reference to a hash containing all of the entries from the specified Srcsrv.ini file.

Return Value
None

($VariableHashReference, $FileEntry) = $objref->GetFileInfo($LocalFile)
Purpose
Provides the necessary information to extract a single, specific file from the source control system.
Parameters
$LocalFile
A fully qualified file name.

Return Values
$VariableHashReference
A hash reference of the variables necessary to interpret the returned $FileEntry. Ssindex.cmd caches these variables for every source file used by a single debug file to reduce the amount of information written to the source index stream.
$FileEntry
The file entry to be written to the source index stream to allow SrcSrv to extract this file from source control. The exact format of this line is specific to the source control system.

$TextString = $objref->LongName()
Purpose
Provides a descriptive string to identify the source control system to the end user.
Parameters
None
Return Value
$TextString
The descriptive name of the source control system.

@StreamVariableLines=$objref->SourceStreamVariables()
Purpose
Enables the source control system to add source-control-specific variables to the source stream for each debug file. The sample modules use this method for writing the required EXTRACT_CMD and EXTRACT_TARGET variables.
Parameters
None

Return Value
@StreamVariableLines
The list of entries for the source stream variables.

Build machine: CAPEBUILD