25#ifndef quantext_fx_linked_cashflow_hpp
26#define quantext_fx_linked_cashflow_hpp
28#include <ql/cashflow.hpp>
29#include <ql/handle.hpp>
30#include <ql/patterns/visitor.hpp>
31#include <ql/quote.hpp>
32#include <ql/time/date.hpp>
48 virtual QuantLib::ext::shared_ptr<FXLinked>
clone(QuantLib::ext::shared_ptr<FxIndex>
fxIndex) = 0;
61 const bool inverted =
false);
68 virtual QuantLib::ext::shared_ptr<AverageFXLinked>
clone(QuantLib::ext::shared_ptr<FxIndex>
fxIndex) = 0;
104 QuantLib::ext::shared_ptr<FxIndex>
fxIndex);
114 void accept(AcyclicVisitor&)
override;
119 void update()
override { notifyObservers(); }
124 QuantLib::ext::shared_ptr<FXLinked>
clone(QuantLib::ext::shared_ptr<FxIndex>
fxIndex)
override;
134 Visitor<FXLinkedCashFlow>* v1 =
dynamic_cast<Visitor<FXLinkedCashFlow>*
>(&v);
156 QuantLib::ext::shared_ptr<FxIndex>
fxIndex,
const bool inverted =
false);
166 void accept(AcyclicVisitor&)
override;
171 void update()
override { notifyObservers(); }
176 QuantLib::ext::shared_ptr<AverageFXLinked>
clone(QuantLib::ext::shared_ptr<FxIndex>
fxIndex)
override;
180 std::map<Date, Real>
fixings()
const;
187 Visitor<AverageFXLinkedCashFlow>* v1 =
dynamic_cast<Visitor<AverageFXLinkedCashFlow>*
>(&v);
Average FX Linked cash-flow.
QuantLib::ext::shared_ptr< AverageFXLinked > clone(QuantLib::ext::shared_ptr< FxIndex > fxIndex) override
std::map< Date, Real > fixings() const
Real amount() const override
void accept(AcyclicVisitor &) override
Date date() const override
std::vector< Date > fxFixingDates_
QuantLib::ext::shared_ptr< FxIndex > fxIndex_
const QuantLib::ext::shared_ptr< FxIndex > & fxIndex() const
virtual QuantLib::ext::shared_ptr< AverageFXLinked > clone(QuantLib::ext::shared_ptr< FxIndex > fxIndex)=0
const std::vector< Date > & fxFixingDates() const
Real foreignAmount() const
virtual ~AverageFXLinked()
QuantLib::ext::shared_ptr< FXLinked > clone(QuantLib::ext::shared_ptr< FxIndex > fxIndex) override
Real amount() const override
void accept(AcyclicVisitor &) override
Date date() const override
Base class for FX Linked cashflows.
QuantLib::ext::shared_ptr< FxIndex > fxIndex_
const QuantLib::ext::shared_ptr< FxIndex > & fxIndex() const
virtual QuantLib::ext::shared_ptr< FXLinked > clone(QuantLib::ext::shared_ptr< FxIndex > fxIndex)=0
Real foreignAmount() const
Date fxFixingDate() const