Abstract template EngineBuilder class that can cache engines and coupon pricers. More...
#include <ored/portfolio/builders/cachingenginebuilder.hpp>
Public Member Functions | |
CachingEngineBuilder (const string &model, const string &engine, const set< string > &tradeTypes) | |
QuantLib::ext::shared_ptr< U > | engine (Args... params) |
Return a PricingEngine or a FloatingRateCouponPricer. More... | |
void | reset () override |
reset the builder (e.g. clear cache) More... | |
Public Member Functions inherited from EngineBuilder | |
EngineBuilder (const string &model, const string &engine, const set< string > &tradeTypes) | |
virtual | ~EngineBuilder () |
Virtual destructor. More... | |
const string & | model () const |
Return the model name. More... | |
const string & | engine () const |
Return the engine name. More... | |
const set< string > & | tradeTypes () const |
Return the possible trade types. More... | |
const string & | configuration (const MarketContext &key) |
Return a configuration (or the default one if key not found) More... | |
virtual void | reset () |
reset the builder (e.g. clear cache) More... | |
void | init (const QuantLib::ext::shared_ptr< Market > market, const map< MarketContext, string > &configurations, const map< string, string > &modelParameters, const map< string, string > &engineParameters, const std::map< std::string, std::string > &globalParameters={}) |
Initialise this Builder with the market and parameters to use. More... | |
const set< std::pair< string, QuantLib::ext::shared_ptr< QuantExt::ModelBuilder > > > & | modelBuilders () const |
return model builders More... | |
std::string | engineParameter (const std::string &p, const std::vector< std::string > &qualifiers={}, const bool mandatory=true, const std::string &defaultValue="") const |
std::string | modelParameter (const std::string &p, const std::vector< std::string > &qualifiers={}, const bool mandatory=true, const std::string &defaultValue="") const |
Protected Member Functions | |
virtual T | keyImpl (Args...)=0 |
virtual QuantLib::ext::shared_ptr< U > | engineImpl (Args...)=0 |
Protected Attributes | |
map< T, QuantLib::ext::shared_ptr< U > > | engines_ |
Protected Attributes inherited from EngineBuilder | |
string | model_ |
string | engine_ |
set< string > | tradeTypes_ |
QuantLib::ext::shared_ptr< Market > | market_ |
map< MarketContext, string > | configurations_ |
map< string, string > | modelParameters_ |
map< string, string > | engineParameters_ |
std::map< std::string, std::string > | globalParameters_ |
set< std::pair< string, QuantLib::ext::shared_ptr< QuantExt::ModelBuilder > > > | modelBuilders_ |
Abstract template EngineBuilder class that can cache engines and coupon pricers.
Subclasses must implement two protected methods:
The first template argument is the cache key type (e.g. a std::string) The second template argument is PricingEngine or FloatingRateCouponPricer The remaining variable arguments are to be passed to engine() and engineImpl(), these are the specific parameters required to build an engine or coupon pricer for this trade type.
Definition at line 51 of file cachingenginebuilder.hpp.
CachingEngineBuilder | ( | const string & | model, |
const string & | engine, | ||
const set< string > & | tradeTypes | ||
) |
Constructor that takes a model and engine name
model | the model name |
engine | the engine name |
tradeTypes | a set of trade types |
Definition at line 58 of file cachingenginebuilder.hpp.
QuantLib::ext::shared_ptr< U > engine | ( | Args... | params | ) |
Return a PricingEngine or a FloatingRateCouponPricer.
Definition at line 62 of file cachingenginebuilder.hpp.
|
overridevirtual |
reset the builder (e.g. clear cache)
Reimplemented from EngineBuilder.
Definition at line 73 of file cachingenginebuilder.hpp.
|
protectedpure virtual |
|
protectedpure virtual |
|
protected |
Definition at line 79 of file cachingenginebuilder.hpp.