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.

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft