# Ice::PluginManager

## Overview

### local interface PluginManager

Each communicator has a plug-in manager to administer the set of plug-ins.

#### Used By

Communicator::getPluginManager

## Operation Index

initializePlugins
  Initialize the configured plug-ins.
getPlugin
  Obtain a plug-in by name.
addPlugin
  Install a new plug-in.
destroy
  Called when the communicator is being destroyed.

## Operations

### void initializePlugins()

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

#### Exceptions

InitializationException
  Raised if the plug-ins have already been initialized.

### Plugin getPlugin(string name)

Obtain a plug-in by name.

#### Parameters

name
  The plug-in's name.

#### Return Value

The plug-in.

#### Exceptions

NotRegisteredException
  Raised if no plug-in is found with the given name.

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

Install a new plug-in.

#### Parameters

name
  The plug-in's name.
pi
  The plug-in.

#### Exceptions

AlreadyRegisteredException
  Raised if a plug-in already exists with the given name.

### void destroy()

Called when the communicator is being destroyed.