# Interface RepositoryDriver

All Known Implementing Classes:
  `MemRepositoryDriver`

public interface RepositoryDriver
The RepositoryDriver adapts between the `SmiManager` and the (persistent) storage that holds the compiled MIB modules. By implementing this interface you can create your own driver to store MIB repository data in a database, for example. `SmiManager` uses a default driver which stores the MIB repository in a directory.

Author:
  Frank Fock

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `deleteModule(RepositoryIO event)`
  Requests deletion of the MIB module identified by the module name supplied with the `RepositoryIO` object.
  `String[]`
  `listModuleNames()`
  Enumerates the available MIB module names in the repository.
  `void`
  `readModule(RepositoryIO event)`
  Requests to read a MIB module with the name specified in the supplied event object.
  `void`
  `writeModule(RepositoryIO event)`
  Requests to write a MIB module with the name specified in the supplied event object.

- ## Method Details

  - ### writeModule

    void writeModule(RepositoryIO event)
    Requests to write a MIB module with the name specified in the supplied event object. Implementations of this method should set the `OutputStream` member of the supplied event object.
    Parameters:
      `event` - a `RepositoryIO` with the module name of the MIB module that should be written to persistent storage. The implementation of this interface should set the `OutputStream` of `event`.

  - ### readModule

    void readModule(RepositoryIO event)
    Requests to read a MIB module with the name specified in the supplied event object. Implementations of this method should set the `InputStream` member of the supplied event object.
    Parameters:
      `event` - a `RepositoryIO` with the module name of the MIB module that should be read from persistent storage. The implementation of this interface should set the `InputStream` of `event`.

  - ### deleteModule

    void deleteModule(RepositoryIO event)
    Requests deletion of the MIB module identified by the module name supplied with the `RepositoryIO` object.
    Parameters:
      `event` - a `RepositoryIO` with the module name of the MIB module that should be removed from persistent MIB repository storage. If a listener has successfully removed the module, it must set the corresponding flag in the supplied event object.

  - ### listModuleNames

    String[] listModuleNames()
    Enumerates the available MIB module names in the repository.
    Returns:
      a list of MIB module names or `null` if that method is not supported by the listener.