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) | |
boost::shared_ptr< U > | engine (Args... params) |
Return a PricingEngine or a FloatingRateCouponPricer. | |
void | reset () override |
reset the builder (e.g. clear cache) | |
Public Member Functions inherited from EngineBuilder | |
EngineBuilder (const string &model, const string &engine, const set< string > &tradeTypes) | |
virtual | ~EngineBuilder () |
Virtual destructor. | |
const string & | model () const |
Return the model name. | |
const string & | engine () const |
Return the engine name. | |
const set< string > & | tradeTypes () const |
Return the possible trade types. | |
const string & | configuration (const MarketContext &key) |
Return a configuration (or the default one if key not found) | |
void | init (const boost::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, boost::shared_ptr< QuantExt::ModelBuilder > > > & | modelBuilders () const |
return model builders | |
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 boost::shared_ptr< U > | engineImpl (Args...)=0 |
Protected Attributes | |
map< T, boost::shared_ptr< U > > | engines_ |
Protected Attributes inherited from EngineBuilder | |
string | model_ |
string | engine_ |
set< string > | tradeTypes_ |
boost::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, boost::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.
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 |