Autopsy may use multiple threads to complete an ingest job, but it is guaranteed that a module instance will always be called from a single thread. Therefore, you can easily have thread-safe code by not using any static member variables.

If the module instances must share resources, the modules are responsible for synchronizing access to the shared resources and doing reference counting as required to release those resources correctly. Also, more than one ingest job may be in progress at any given time. This must also be taken into consideration when sharing resources between module instances.

TIP: An ingest module that does not require initialization or clean up may extend the abstract IngestModuleAdapter class to get a default "do nothing" implementation of this interface.

Member Function Documentation

Invoked by Autopsy to allow an ingest module instance to set up any internal data structures and acquire any private resources it will need during an ingest job. If the module depends on loading any resources, it should do so in this method so that it can throw an exception in the case of an error and alert the user. Exceptions that are thrown from process() and shutDown() are logged, but do not stop processing of the data source.

Parameters

context

Provides data and services specific to the ingest job and the ingest pipeline of which the module is a part.