# PluginManager

## Overview

### local interface PluginManager

Each communicator has a plugin manager to administer the set of plugins.

#### Used By

Communicator::getPluginManager

## Operation Index

initializePlugins
  Initialize the configured plugins.
getPlugin
  Obtain a plugin by name.
addPlugin
  Install a new plugin.
destroy
  Called when the communicator is being destroyed.

## Operations

### void initializePlugins()

Initialize the configured plugins. The communicator automatically initializes the plugins by default, but an application may need to interact directly with a plugin prior to initialization. In this case, the application must set `Ice.InitPlugins=0` and then invoke initializePlugins manually. The plugins are initialized in the order in which they are loaded. If a plugin raises an exception during initialization, the communicator invokes destroy on the plugins that have already been initialized.

#### Exceptions

InitializationException
  Raised if the plugins have already been initialized.

### Plugin getPlugin(string name)

Obtain a plugin by name.

#### Parameters

name
  The plugin's name.

#### Return Value

The plugin.

#### Exceptions

NotRegisteredException
  Raised if no plugin is found with the given name.

### void addPlugin(string name, Plugin pi)

Install a new plugin.

#### Parameters

name
  The plugin's name.
pi
  The plugin.

#### Exceptions

AlreadyRegisteredException
  Raised if a plugin already exists with the given name.

### void destroy()

Called when the communicator is being destroyed.