# Managing your Licenses

<a id="why-licenses"></a>

## Why Licenses ?

To use **eVision** in your application, you need licenses to unlock the tools functionalities.

Each **eVision** license unlocks one or more library, and all the tools included in that library.

#### HINT
You can find what license an **eVision** tool requires in the reference documentation of the associated classe(s).

#### NOTE
The `BasicTypes` license indicates that the functionality is unlocked whenever there is any **eVision** license available on the system.

#### HINT
You can also find what license(s) you need by using **eVision Studio** to prototype your application. **eVision Studio** does not require licenses, but will state which license(s) you need for your application in the code it generates.

<a id="licensing-systems"></a>

## Available Licensing Systems

**eVision** currently supports two licensing systems:

* **Neo**, available on all supported platforms, and allowing licenses on both software containers and dongles. This is the recommended way to handle **eVision** licenses.
* **Legacy**, available only for windows and for old-style dongles (before 2.13), available for backwards compatibility with older licenses.

Both systems can be used at the same time, but only **Neo** is recommended for new projects.

#### SEE ALSO
For more information about the **Neo Licensing System**, you can check its [documentation](http://documentation.euresys.com)

<a id="license-managers"></a>

## Activating and Supporting the Licenses

**eVision** licenses are activated using the **License Manager** applications, which are installed alongside **eVision**.

There is one application for each of the licensing systems:

- The **Neo License Manager** for **Neo** licenses.
- The **Legacy License Manager** for legacy licenses.

The applications allow you to activate, but also check and support **eVision** licenses on your system.

<a id="select-licensing-system"></a>

## Selecting a Licensing System

You can select the **eVision** licensing systems(s) that you use with your application. By default, both are enabled.

#### HINT
Selecting only one system avoids the delays that are sometimes added by the initialization of licensing systems you do not use.

### The `SelectLicensingModel` function

* To select the licensing models to enable with **eVision**, call the following function: `Preconfiguration::SelectLicensingModels(ELicensingModel model)`
* Always call it before any other **eVision** function as calling it after the first call to **eVision** has no effect.
* The `SelectLicensingModels` function takes a single argument:
  * The licensing models to enable, as described by the `ELicensingModel` enumeration.

### The `ELicensingModel` enumeration

* The `ELicensingModel` enumeration contains the different licensing models you can enable within **eVision**:
  * `Neo`: the current licensing model.
  * `LegacyDongle`: the legacy licensing model associated to the dongles used before 2.13.
  * `All` (default): this licensing model enables all the others (`Neo + LegacyDongle`) (default value).
