Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
bufferedsensitivitystream.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2022 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file orea/engine/bufferedsensitivitystream.hpp
20 \brief a wrapper to buffer sensi stream records
21 */
22
23#pragma once
24
26
27namespace ore {
28namespace analytics {
29
31public:
32 explicit BufferedSensitivityStream(const QuantLib::ext::shared_ptr<SensitivityStream>& stream);
33 SensitivityRecord next() override;
34 void reset() override;
35
36private:
37 QuantLib::ext::shared_ptr<SensitivityStream> stream_;
38 std::vector<SensitivityRecord> buffer_;
39 QuantLib::Size index_ = QuantLib::Null<QuantLib::Size>();
40};
41
42} // namespace analytics
43} // namespace ore
QuantLib::ext::shared_ptr< SensitivityStream > stream_
void reset() override
Resets the stream so that SensitivityRecord objects can be streamed again.
SensitivityRecord next() override
Returns the next SensitivityRecord in the stream.
Base Class for streaming SensitivityRecords.
Base class for sensitivity record streamer.