Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
context.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2019 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 ored/scripting/context.hpp
20 \brief script engine context holding variable names and values
21 \ingroup utilities
22*/
23
24#pragma once
25
28
29#include <boost/variant.hpp>
30
31#include <map>
32#include <ostream>
33#include <set>
34#include <vector>
35
36namespace ore {
37namespace data {
38
39struct Context {
40 // not assignable, will throw an error if tried
41 std::set<std::string> constants;
42 // not assignable, but won't throw an error if tried (has a special use case for AMC runs)
43 std::set<std::string> ignoreAssignments;
44 //
45 std::map<std::string, ValueType> scalars;
46 std::map<std::string, std::vector<ValueType>> arrays;
47 // variable size
48 Size varSize() const;
49 // is context empty?
50 bool empty() const { return scalars.empty() && arrays.empty(); }
51 // reset size to given value
52 void resetSize(const std::size_t n);
53};
54
55std::ostream& operator<<(std::ostream& out, const Context& context);
56
57} // namespace data
58} // namespace ore
abstract syntax tree for payoff scripting
@ data
Definition: log.hpp:77
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
Serializable Credit Default Swap.
Definition: namespaces.docs:23
std::map< std::string, ValueType > scalars
Definition: context.hpp:45
std::map< std::string, std::vector< ValueType > > arrays
Definition: context.hpp:46
Size varSize() const
Definition: context.cpp:31
bool empty() const
Definition: context.hpp:50
void resetSize(const std::size_t n)
Definition: context.cpp:105
std::set< std::string > ignoreAssignments
Definition: context.hpp:43
std::set< std::string > constants
Definition: context.hpp:41
value type and operations