Skip to content

Commit 5e8ba6d

Browse files
pcaspersjenkins
authored andcommitted
manually register of builders for the time being
1 parent d38f030 commit 5e8ba6d

1 file changed

Lines changed: 60 additions & 44 deletions

File tree

OREAnalytics/orea/app/oreapp.cpp

Lines changed: 60 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -355,50 +355,66 @@ OREApp::OREApp(const boost::shared_ptr<InputParameters>& inputs, const std::stri
355355
}
356356

357357
void OREApp::dummyRegisterBuildersForWindows() {
358-
std::size_t dummy = 0;
359-
360-
dummy |= (std::size_t)boost::make_shared<Swap>().get();
361-
dummy |= (std::size_t)boost::make_shared<Swaption>().get();
362-
dummy |= (std::size_t)boost::make_shared<CapFloor>().get();
363-
dummy |= (std::size_t)boost::make_shared<ForwardRateAgreement>().get();
364-
dummy |= (std::size_t)boost::make_shared<FxForward>().get();
365-
dummy |= (std::size_t)boost::make_shared<FxOption>().get();
366-
dummy |= (std::size_t)boost::make_shared<FxSwap>().get();
367-
368-
dummy |= (std::size_t)boost::make_shared<SwapEngineBuilder>().get();
369-
dummy |= (std::size_t)boost::make_shared<CrossCurrencySwapEngineBuilder>().get();
370-
dummy |= (std::size_t)boost::make_shared<FxForwardEngineBuilder>().get();
371-
dummy |= (std::size_t)boost::make_shared<FxEuropeanOptionEngineBuilder>().get();
372-
dummy |= (std::size_t)boost::make_shared<FxEuropeanCSOptionEngineBuilder>().get();
373-
dummy |= (std::size_t)boost::make_shared<FxAmericanOptionFDEngineBuilder>().get();
374-
dummy |= (std::size_t)boost::make_shared<FxAmericanOptionBAWEngineBuilder>().get();
375-
dummy |= (std::size_t)boost::make_shared<CapFloorEngineBuilder>().get();
376-
dummy |= (std::size_t)boost::make_shared<CapFlooredOvernightIndexedCouponLegEngineBuilder>().get();
377-
dummy |= (std::size_t)boost::make_shared<CapFlooredAverageONIndexedCouponLegEngineBuilder>().get();
378-
dummy |= (std::size_t)boost::make_shared<CapFlooredIborLegEngineBuilder>().get();
379-
dummy |= (std::size_t)boost::make_shared<LinearTSRCmsCouponPricerBuilder>().get();
380-
381-
boost::shared_ptr<QuantExt::CrossAssetModel> cam;
382-
std::vector<Date> simulationDates;
383-
dummy |= (std::size_t)boost::make_shared<CamAmcFxOptionEngineBuilder>(cam, simulationDates).get();
384-
dummy |= (std::size_t)boost::make_shared<CamAmcCurrencySwapEngineBuilder>(cam, simulationDates).get();
385-
dummy |= (std::size_t)boost::make_shared<CamAmcSwapEngineBuilder>(cam, simulationDates).get();
386-
dummy |= (std::size_t)boost::make_shared<LgmAmcBermudanSwaptionEngineBuilder>(cam, simulationDates).get();
387-
388-
dummy |= (std::size_t)boost::make_shared<FixedLegBuilder>().get();
389-
dummy |= (std::size_t)boost::make_shared<ZeroCouponFixedLegBuilder>().get();
390-
dummy |= (std::size_t)boost::make_shared<FloatingLegBuilder>().get();
391-
dummy |= (std::size_t)boost::make_shared<CashflowLegBuilder>().get();
392-
dummy |= (std::size_t)boost::make_shared<CPILegBuilder>().get();
393-
dummy |= (std::size_t)boost::make_shared<YYLegBuilder>().get();
394-
dummy |= (std::size_t)boost::make_shared<CMSLegBuilder>().get();
395-
dummy |= (std::size_t)boost::make_shared<CMBLegBuilder>().get();
396-
dummy |= (std::size_t)boost::make_shared<DigitalCMSLegBuilder>().get();
397-
dummy |= (std::size_t)boost::make_shared<CMSSpreadLegBuilder>().get();
398-
dummy |= (std::size_t)boost::make_shared<DigitalCMSSpreadLegBuilder>().get();
399-
dummy |= (std::size_t)boost::make_shared<EquityLegBuilder>().get();
400-
401-
ELOG("Enforce builder registration: " << dummy);
358+
TradeFactory::instance().addBuilder("Swap", boost::make_shared<TradeBuilder<Swap>>(), true);
359+
TradeFactory::instance().addBuilder("Swaption", boost::make_shared<TradeBuilder<Swaption>>(), true);
360+
TradeFactory::instance().addBuilder("CapFloor", boost::make_shared<TradeBuilder<CapFloor>>(), true);
361+
TradeFactory::instance().addBuilder("ForwardRateAgreement",
362+
boost::make_shared<TradeBuilder<ForwardRateAgreement>>(), true);
363+
TradeFactory::instance().addBuilder("FxForward", boost::make_shared<TradeBuilder<FxForward>>(), true);
364+
TradeFactory::instance().addBuilder("FxOption", boost::make_shared<TradeBuilder<FxOption>>(), true);
365+
TradeFactory::instance().addBuilder("FxSwap", boost::make_shared<TradeBuilder<FxSwap>>(), true);
366+
367+
EngineBuilderFactory::instance().addEngineBuilder([]() { return boost::make_shared<SwapEngineBuilder>(); });
368+
EngineBuilderFactory::instance().addEngineBuilder(
369+
[]() { return boost::make_shared<CrossCurrencySwapEngineBuilder>(); });
370+
EngineBuilderFactory::instance().addEngineBuilder([]() { return boost::make_shared<FxForwardEngineBuilder>(); });
371+
EngineBuilderFactory::instance().addEngineBuilder(
372+
[]() { return boost::make_shared<FxEuropeanOptionEngineBuilder>(); });
373+
EngineBuilderFactory::instance().addEngineBuilder(
374+
[]() { return boost::make_shared<FxEuropeanCSOptionEngineBuilder>(); });
375+
EngineBuilderFactory::instance().addEngineBuilder(
376+
[]() { return boost::make_shared<FxAmericanOptionFDEngineBuilder>(); });
377+
EngineBuilderFactory::instance().addEngineBuilder(
378+
[]() { return boost::make_shared<FxAmericanOptionBAWEngineBuilder>(); });
379+
EngineBuilderFactory::instance().addEngineBuilder([]() { return boost::make_shared<CapFloorEngineBuilder>(); });
380+
EngineBuilderFactory::instance().addEngineBuilder(
381+
[]() { return boost::make_shared<CapFlooredOvernightIndexedCouponLegEngineBuilder>(); });
382+
EngineBuilderFactory::instance().addEngineBuilder(
383+
[]() { return boost::make_shared<CapFlooredAverageONIndexedCouponLegEngineBuilder>(); });
384+
EngineBuilderFactory::instance().addEngineBuilder(
385+
[]() { return boost::make_shared<CapFlooredIborLegEngineBuilder>(); });
386+
EngineBuilderFactory::instance().addEngineBuilder(
387+
[]() { return boost::make_shared<LinearTSRCmsCouponPricerBuilder>(); });
388+
389+
EngineBuilderFactory::instance().addAmcEngineBuilder(
390+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<Date>& grid) {
391+
return boost::make_shared<CamAmcCurrencySwapEngineBuilder>(cam, grid);
392+
});
393+
EngineBuilderFactory::instance().addAmcEngineBuilder(
394+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<Date>& grid) {
395+
return boost::make_shared<CamAmcFxOptionEngineBuilder>(cam, grid);
396+
});
397+
EngineBuilderFactory::instance().addAmcEngineBuilder(
398+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<Date>& grid) {
399+
return boost::make_shared<CamAmcSwapEngineBuilder>(cam, grid);
400+
});
401+
EngineBuilderFactory::instance().addAmcEngineBuilder(
402+
[](const boost::shared_ptr<QuantExt::CrossAssetModel>& cam, const std::vector<Date>& grid) {
403+
return boost::make_shared<LgmAmcBermudanSwaptionEngineBuilder>(cam, grid);
404+
});
405+
406+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<FixedLegBuilder>(); });
407+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<ZeroCouponFixedLegBuilder>(); });
408+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<FloatingLegBuilder>(); });
409+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CashflowLegBuilder>(); });
410+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CPILegBuilder>(); });
411+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<YYLegBuilder>(); });
412+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CMSLegBuilder>(); });
413+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CMBLegBuilder>(); });
414+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<DigitalCMSLegBuilder>(); });
415+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<CMSSpreadLegBuilder>(); });
416+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<DigitalCMSSpreadLegBuilder>(); });
417+
EngineBuilderFactory::instance().addLegBuilder([]() { return boost::make_shared<EquityLegBuilder>(); });
402418
}
403419

404420
OREApp::~OREApp() {

0 commit comments

Comments
 (0)