org.eclipse.mat.snapshot.acquire

## Interface IHeapDumpProvider

All Known Implementing Classes:
  BaseProvider, IBMDumpProvider, IBMExecDumpProvider, IBMJavaDumpProvider, JMapHeapDumpProvider

    public interface IHeapDumpProvider

Provides functionality to acquire a heap dump from a locally running Java process Implementations of this interface need to be registered using the `org.eclipse.mat.api.heapDumpProvider` extension point. Arguments can be injected into the query using public fields marked with the `Argument` annotation. Typical arguments to be supplied by the user of the heap dump provider include

- boolean flags
- int parm
- File file optionally tagged with tagged with `Argument.Advice.DIRECTORY` or `Argument.Advice.SAVE`.
- enum - an enum

The implementation can be tagged with the following annotations to control the description and help text.

- `Name`
- `Help`
- `HelpUrl`
- `Usage`

Since:
  1.0

### Method Summary

All Methods Instance Methods Abstract Methods
`File` `acquireDump(VmInfo info, File preferredLocation, IProgressListener listener)` Acquire a heap dump from a locally running Java process.
`List<? extends VmInfo>` `getAvailableVMs(IProgressListener listener)` Returns a list of locally running Java processes from which the heap dump provider can attempt to acquire a heap dump

### Method Detail

#### getAvailableVMs

    List<? extends VmInfo> getAvailableVMs(IProgressListener listener)
                                    throws SnapshotException

Returns a list of locally running Java processes from which the heap dump provider can attempt to acquire a heap dump

Parameters:
  `listener` - a progress listener
Returns:
  A List of VMs, of a type which extends `VmInfo`.
Throws:
  `SnapshotException`

#### acquireDump

    File acquireDump(VmInfo info,
                     File preferredLocation,
                     IProgressListener listener)
              throws SnapshotException

Acquire a heap dump from a locally running Java process. The

Parameters:
  `info` - a descriptor of the Java process which should be dumped
  `preferredLocation` - a preferred filename under which the heap dump should be saved. The `IHeapDumpProvider` is not obliged to provide the heap dump at this location
  `listener` - a progress listener
Returns:
  the File under which the successfully generated heap dump is saved
Throws:
  `SnapshotException`