Logo
Reference manual - version ored_version
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CachingEngineBuilder< T, U, Args > Class Template Referenceabstract

Abstract template EngineBuilder class that can cache engines and coupon pricers. More...

#include <ored/portfolio/builders/cachingenginebuilder.hpp>

+ Inheritance diagram for CachingEngineBuilder< T, U, Args >:

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< Marketmarket_
 
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_
 

Detailed Description

template<class T, class U, typename... Args>
class ore::data::CachingEngineBuilder< T, U, Args >

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.

Constructor & Destructor Documentation

◆ CachingEngineBuilder()

CachingEngineBuilder ( const string &  model,
const string &  engine,
const set< string > &  tradeTypes 
)

Constructor that takes a model and engine name

Parameters
modelthe model name
enginethe engine name
tradeTypesa set of trade types