Skip to content

Commit 80f7e99

Browse files
author
jenkins
committed
git subrepo pull (merge) ore
subrepo: subdir: "ore" merged: "d129979793" upstream: origin: "git@gitlab.acadiasoft.net:qs/ore.git" branch: "master" commit: "81f0590c1f" git-subrepo: version: "0.4.6" origin: "https://github.com/ingydotnet/git-subrepo" commit: "110b9eb"
2 parents b397241 + 81f0590 commit 80f7e99

35 files changed

Lines changed: 463 additions & 513 deletions

Docs/UserGuide/userguide.tex

Lines changed: 336 additions & 389 deletions
Large diffs are not rendered by default.

Examples/Example_8/Readme.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@
1717
5) Run Example
1818

1919
python run.py
20+

OREData/ored/configuration/conventions.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Convention::Convention(const string& id, Type type) : type_(type), id_(id) {}
7171

7272
const boost::shared_ptr<ore::data::Conventions>& InstrumentConventions::conventions(QuantLib::Date d) const {
7373
QL_REQUIRE(!conventions_.empty(), "InstrumentConventions: No conventions provided.");
74-
std::shared_lock<std::shared_mutex> lock(mutex_);
74+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
7575
Date dt = d == Date() ? Settings::instance().evaluationDate() : d;
7676
auto it = conventions_.lower_bound(dt);
7777
if(it != conventions_.end() && it->first == dt)
@@ -91,7 +91,7 @@ const boost::shared_ptr<ore::data::Conventions>& InstrumentConventions::conventi
9191

9292
void InstrumentConventions::setConventions(
9393
const boost::shared_ptr<ore::data::Conventions>& conventions, QuantLib::Date d) {
94-
std::unique_lock<std::shared_mutex> lock(mutex_);
94+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
9595
conventions_[d] = conventions;
9696
}
9797

@@ -2467,7 +2467,7 @@ void Conventions::fromXML(XMLNode* node) {
24672467
}
24682468

24692469
XMLNode* Conventions::toXML(XMLDocument& doc) {
2470-
std::unique_lock<std::shared_mutex> lock(mutex_);
2470+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
24712471

24722472
XMLNode* conventionsNode = doc.allocNode("Conventions");
24732473

@@ -2480,7 +2480,7 @@ XMLNode* Conventions::toXML(XMLDocument& doc) {
24802480
}
24812481

24822482
void Conventions::clear() const {
2483-
std::unique_lock<std::shared_mutex> lock(mutex_);
2483+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
24842484
data_.clear();
24852485
}
24862486

@@ -2509,7 +2509,7 @@ std::string flip(const std::string& id, const std::string& sep = "-") {
25092509
boost::shared_ptr<Convention> Conventions::get(const string& id) const {
25102510

25112511
{
2512-
std::shared_lock<std::shared_mutex> lock(mutex_);
2512+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
25132513
if (auto it = data_.find(id); it != data_.end()) {
25142514
used_.insert(id);
25152515
return it->second;
@@ -2522,7 +2522,7 @@ boost::shared_ptr<Convention> Conventions::get(const string& id) const {
25222522

25232523
std::string type, unparsed;
25242524
{
2525-
std::unique_lock<std::shared_mutex> lock(mutex_);
2525+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
25262526
if (auto it = unparsed_.find(id); it != unparsed_.end()) {
25272527
std::tie(type, unparsed) = it->second;
25282528
unparsed_.erase(id);
@@ -2597,7 +2597,7 @@ boost::shared_ptr<Convention> Conventions::get(const string& id) const {
25972597
}
25982598

25992599
boost::shared_ptr<Convention> Conventions::getFxConvention(const string& ccy1, const string& ccy2) const {
2600-
std::shared_lock<std::shared_mutex> lock(mutex_);
2600+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
26012601
for (auto c : data_) {
26022602
auto fxCon = boost::dynamic_pointer_cast<FXConvention>(c.second);
26032603
if (fxCon) {
@@ -2629,7 +2629,7 @@ std::set<boost::shared_ptr<Convention>> Conventions::get(const Convention::Type&
26292629
std::set<std::string> unparsedIds;
26302630
std::string typeStr = ore::data::to_string(type);
26312631
{
2632-
std::shared_lock<std::shared_mutex> lock(mutex_);
2632+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
26332633
for (auto const& d : data_) {
26342634
if (d.second->type() == type) {
26352635
used_.insert(d.first);
@@ -2653,7 +2653,7 @@ bool Conventions::has(const string& id) const {
26532653
} catch (const std::exception& e) {
26542654
return false;
26552655
}
2656-
std::shared_lock<std::shared_mutex> lock(mutex_);
2656+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
26572657
return data_.find(id) != data_.end() || unparsed_.find(id) != unparsed_.end() ||
26582658
data_.find(flip(id)) != data_.end() || unparsed_.find(flip(id)) != unparsed_.end();
26592659
}
@@ -2663,7 +2663,7 @@ bool Conventions::has(const std::string& id, const Convention::Type& type) const
26632663
}
26642664

26652665
void Conventions::add(const boost::shared_ptr<Convention>& convention) const {
2666-
std::unique_lock<std::shared_mutex> lock(mutex_);
2666+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
26672667
const string& id = convention->id();
26682668
QL_REQUIRE(data_.find(id) == data_.end(), "Convention already exists for id " << id);
26692669
data_[id] = convention;

OREData/ored/configuration/conventions.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
#include <qle/indexes/bmaindexwrapper.hpp>
3737
#include <qle/indexes/commodityindex.hpp>
3838

39-
#include <shared_mutex>
40-
39+
#include <boost/thread/shared_mutex.hpp>
40+
#include <boost/thread/lock_types.hpp>
4141

4242
namespace ore {
4343
namespace data {
@@ -154,7 +154,7 @@ class Conventions : public XMLSerializable {
154154
mutable map<string, boost::shared_ptr<Convention>> data_;
155155
mutable map<string, std::pair<string, string>> unparsed_;
156156
mutable std::set<string> used_;
157-
mutable std::shared_mutex mutex_;
157+
mutable boost::shared_mutex mutex_;
158158
};
159159

160160
//! Singleton to hold conventions
@@ -166,7 +166,7 @@ class InstrumentConventions : public QuantLib::Singleton<InstrumentConventions,
166166
InstrumentConventions() { conventions_[Date()] = boost::make_shared<ore::data::Conventions>(); }
167167

168168
mutable std::map<QuantLib::Date, boost::shared_ptr<ore::data::Conventions>> conventions_;
169-
mutable std::shared_mutex mutex_;
169+
mutable boost::shared_mutex mutex_;
170170
mutable std::size_t numberOfEmittedWarnings_ = 0;
171171

172172
public:

OREData/ored/marketdata/market.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
#include <qle/termstructures/creditvolcurve.hpp>
4949
#include <qle/termstructures/pricetermstructure.hpp>
5050

51-
#include <shared_mutex>
51+
#include <boost/thread/shared_mutex.hpp>
5252
#include <boost/thread/locks.hpp>
5353

5454
namespace ore {
@@ -130,16 +130,16 @@ class GlobalPseudoCurrencyMarketParameters
130130

131131
public:
132132
const PseudoCurrencyMarketParameters& get() const {
133-
std::shared_lock<std::shared_mutex> lock(mutex_);
133+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
134134
return params_;
135135
}
136136

137137
void set(const PseudoCurrencyMarketParameters& params) {
138-
std::unique_lock<std::shared_mutex> lock(mutex_);
138+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
139139
params_ = params;
140140
}
141141
void set(const std::map<string, string>& pegp) {
142-
std::unique_lock<std::shared_mutex> lock(mutex_);
142+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
143143
params_ = buildPseudoCurrencyMarketParameters(pegp);
144144
}
145145

@@ -150,7 +150,7 @@ class GlobalPseudoCurrencyMarketParameters
150150
};
151151

152152
PseudoCurrencyMarketParameters params_;
153-
mutable std::shared_mutex mutex_;
153+
mutable boost::shared_mutex mutex_;
154154
};
155155

156156
//! Market

OREData/ored/model/calibrationinstrumentfactory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace ore {
2525
namespace data {
2626

2727
boost::shared_ptr<CalibrationInstrument> CalibrationInstrumentFactory::build(const string& instrumentType) {
28-
std::shared_lock<std::shared_mutex> lock(mutex_);
28+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
2929
auto it = map_.find(instrumentType);
3030
if (it == map_.end())
3131
return nullptr;
@@ -35,7 +35,7 @@ boost::shared_ptr<CalibrationInstrument> CalibrationInstrumentFactory::build(con
3535
void CalibrationInstrumentFactory::addBuilder(const string& instrumentType,
3636
function<boost::shared_ptr<CalibrationInstrument>()> builder,
3737
const bool allowOverwrite) {
38-
std::unique_lock<std::shared_mutex> lock(mutex_);
38+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
3939
QL_REQUIRE(map_.insert(std::make_pair(instrumentType, builder)).second,
4040
"CalibrationInstrumentFactory::addBuilder(" << instrumentType << "): builder for key already exists.");
4141
}

OREData/ored/model/calibrationinstrumentfactory.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class CalibrationInstrumentFactory
9191
const bool allowOverwrite = false);
9292

9393
private:
94-
std::shared_mutex mutex_;
94+
boost::shared_mutex mutex_;
9595
map_type map_;
9696
};
9797

OREData/ored/portfolio/bond.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ double BondBuilder::Result::inflationFactor() const {
330330
BondBuilder::Result BondFactory::build(const boost::shared_ptr<EngineFactory>& engineFactory,
331331
const boost::shared_ptr<ReferenceDataManager>& referenceData,
332332
const std::string& securityId) const {
333-
std::shared_lock<std::shared_mutex> lock(mutex_);
333+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
334334
for (auto const& b : builders_) {
335335
if (referenceData->hasData(b.first, securityId)) {
336336
auto tmp = b.second->build(engineFactory, referenceData, securityId);
@@ -347,7 +347,7 @@ BondBuilder::Result BondFactory::build(const boost::shared_ptr<EngineFactory>& e
347347

348348
void BondFactory::addBuilder(const std::string& referenceDataType, const boost::shared_ptr<BondBuilder>& builder,
349349
const bool allowOverwrite) {
350-
std::unique_lock<std::shared_mutex> lock(mutex_);
350+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
351351
QL_REQUIRE(builders_.insert(std::make_pair(referenceDataType, builder)).second || allowOverwrite,
352352
"BondFactory::addBuilder(" << referenceDataType << "): builder for key already exists.");
353353
}

OREData/ored/portfolio/bond.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ struct BondBuilder {
203203

204204
class BondFactory : public QuantLib::Singleton<BondFactory, std::integral_constant<bool, true>> {
205205
map<std::string, boost::shared_ptr<BondBuilder>> builders_;
206-
mutable std::shared_mutex mutex_;
206+
mutable boost::shared_mutex mutex_;
207207

208208
public:
209209
BondBuilder::Result build(const boost::shared_ptr<EngineFactory>& engineFactory,

OREData/ored/portfolio/enginefactory.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ std::string EngineBuilder::modelParameter(const std::string& p, const std::vecto
6464

6565
void EngineBuilderFactory::addEngineBuilder(const std::function<boost::shared_ptr<EngineBuilder>()>& builder,
6666
const bool allowOverwrite) {
67-
std::unique_lock<std::shared_mutex> lock(mutex_);
67+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
6868
auto tmp = builder();
6969
auto key = make_tuple(tmp->model(), tmp->engine(), tmp->tradeTypes());
7070
auto it = std::remove_if(engineBuilderBuilders_.begin(), engineBuilderBuilders_.end(),
@@ -84,7 +84,7 @@ void EngineBuilderFactory::addAmcEngineBuilder(
8484
const std::function<boost::shared_ptr<EngineBuilder>(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,
8585
const std::vector<Date>& grid)>& builder,
8686
const bool allowOverwrite) {
87-
std::unique_lock<std::shared_mutex> lock(mutex_);
87+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
8888
auto tmp = builder(nullptr, {});
8989
auto key = make_tuple(tmp->model(), tmp->engine(), tmp->tradeTypes());
9090
auto it = std::remove_if(
@@ -104,7 +104,7 @@ void EngineBuilderFactory::addAmcEngineBuilder(
104104

105105
void EngineBuilderFactory::addLegBuilder(const std::function<boost::shared_ptr<LegBuilder>()>& builder,
106106
const bool allowOverwrite) {
107-
std::unique_lock<std::shared_mutex> lock(mutex_);
107+
boost::unique_lock<boost::shared_mutex> lock(mutex_);
108108
auto key = builder()->legType();
109109
auto it =
110110
std::remove_if(legBuilderBuilders_.begin(), legBuilderBuilders_.end(),
@@ -116,7 +116,7 @@ void EngineBuilderFactory::addLegBuilder(const std::function<boost::shared_ptr<L
116116
}
117117

118118
std::vector<boost::shared_ptr<EngineBuilder>> EngineBuilderFactory::generateEngineBuilders() const {
119-
std::shared_lock<std::shared_mutex> lock(mutex_);
119+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
120120
std::vector<boost::shared_ptr<EngineBuilder>> result;
121121
for (auto const& b : engineBuilderBuilders_)
122122
result.push_back(b());
@@ -126,15 +126,15 @@ std::vector<boost::shared_ptr<EngineBuilder>> EngineBuilderFactory::generateEngi
126126
std::vector<boost::shared_ptr<EngineBuilder>>
127127
EngineBuilderFactory::generateAmcEngineBuilders(const boost::shared_ptr<QuantExt::CrossAssetModel>& cam,
128128
const std::vector<Date>& grid) const {
129-
std::shared_lock<std::shared_mutex> lock(mutex_);
129+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
130130
std::vector<boost::shared_ptr<EngineBuilder>> result;
131131
for (auto const& b : amcEngineBuilderBuilders_)
132132
result.push_back(b(cam, grid));
133133
return result;
134134
}
135135

136136
std::vector<boost::shared_ptr<LegBuilder>> EngineBuilderFactory::generateLegBuilders() const {
137-
std::shared_lock<std::shared_mutex> lock(mutex_);
137+
boost::shared_lock<boost::shared_mutex> lock(mutex_);
138138
std::vector<boost::shared_ptr<LegBuilder>> result;
139139
for (auto const& b : legBuilderBuilders_)
140140
result.push_back(b());

0 commit comments

Comments
 (0)