ExchangeRateManager Class Reference

exchange-rate repository More...

`#include <ql/currencies/exchangeratemanager.hpp>`

Inheritance diagram for ExchangeRateManager:
[legend]

## Public Member Functions

void | add (const ExchangeRate &, const Date &startDate=Date::minDate(), const Date &endDate=Date::maxDate())
| Add an exchange rate. More...
ExchangeRate | lookup (const Currency &source, const Currency &target, Date date=Date(), ExchangeRate::Type type=ExchangeRate::Derived) const
void | clear ()
| remove the added exchange rates

## Friends

class | Singleton< ExchangeRateManager >

## Additional Inherited Members

Static Public Member Functions inherited from Singleton< ExchangeRateManager >
static ExchangeRateManager & | instance ()
| access to the unique instance

## Detailed Description

exchange-rate repository

Tests:
  lookup of direct, triangulated, and derived exchange rates is tested.

## Member Function Documentation

## add()

void add | ( | const ExchangeRate & | ,
|  | const Date & | startDate = `Date::minDate()`,
|  | const Date & | endDate = `Date::maxDate()`
| ) |  |

Add an exchange rate.

The given rate is valid between the given dates.

Note
  If two rates are given between the same currencies and with overlapping date ranges, the latest one added takes precedence during lookup.

## lookup()

ExchangeRate lookup | ( | const Currency & | source,
|  | const Currency & | target,
|  | Date | date = `Date()`,
|  | ExchangeRate::Type | type = `ExchangeRate::Derived`
| ) |  | const

Lookup the exchange rate between two currencies at a given date. If the given type is Direct, only direct exchange rates will be returned if available; if Derived, direct rates are still preferred but derived rates are allowed.

Warning:
  if two or more exchange-rate chains are possible which allow to specify a requested rate, it is unspecified which one is returned.