OpenPine C++ API
C++ wrapper for the OpenPine Pine Script VM
Loading...
Searching...
No Matches
script_input.hpp
Go to the documentation of this file.
1#pragma once
2
11
12#if (defined(_MSVC_LANG) ? _MSVC_LANG : __cplusplus) < 201703L
13#error "OpenPine C++ wrapper headers require C++17 (std::optional)."
14#endif
15
16#include <optional>
17
18#include "ffi.hpp"
19#include "inputs.hpp"
20#include "types.hpp"
21
22namespace openpine {
23
31 private:
32 const ffi::Input* p_;
33
34 public:
39 explicit ScriptInput(const ffi::Input* p) : p_(p) {}
40
45 std::optional<inputs::InputInt> asInt() const {
46 ffi::InputInt data{};
47 if (!ffi::inputFillInt(p_, &data)) return std::nullopt;
48 return inputs::InputInt(data, p_);
49 }
50
55 std::optional<inputs::InputFloat> asFloat() const {
56 ffi::InputFloat data{};
57 if (!ffi::inputFillFloat(p_, &data)) return std::nullopt;
58 return inputs::InputFloat(data, p_);
59 }
60
65 std::optional<inputs::InputBool> asBool() const {
66 ffi::InputBool data{};
67 if (!ffi::inputFillBool(p_, &data)) return std::nullopt;
68 return inputs::InputBool(data);
69 }
70
75 std::optional<inputs::InputColor> asColor() const {
76 ffi::InputColor data{};
77 if (!ffi::inputFillColor(p_, &data)) return std::nullopt;
78 return inputs::InputColor(data);
79 }
80
85 std::optional<inputs::InputString> asString() const {
86 ffi::InputString data{};
87 if (!ffi::inputFillString(p_, &data)) return std::nullopt;
88 return inputs::InputString(data, p_);
89 }
90
95 std::optional<inputs::InputPrice> asPrice() const {
96 ffi::InputPrice data{};
97 if (!ffi::inputFillPrice(p_, &data)) return std::nullopt;
98 return inputs::InputPrice(data);
99 }
100
105 std::optional<inputs::InputSymbol> asSymbol() const {
106 ffi::InputSymbol data{};
107 if (!ffi::inputFillSymbol(p_, &data)) return std::nullopt;
108 return inputs::InputSymbol(data);
109 }
110
115 std::optional<inputs::InputTimeFrame> asTimeFrame() const {
116 ffi::InputTimeFrame data{};
117 if (!ffi::inputFillTimeFrame(p_, &data)) return std::nullopt;
118 return inputs::InputTimeFrame(data, p_);
119 }
120
125 std::optional<inputs::InputSource> asSource() const {
126 ffi::InputSource data{};
127 if (!ffi::inputFillSource(p_, &data)) return std::nullopt;
128 return inputs::InputSource(data);
129 }
130
135 std::optional<inputs::InputEnum> asEnum() const {
136 ffi::InputEnum data{};
137 if (!ffi::inputFillEnum(p_, &data)) return std::nullopt;
138 return inputs::InputEnum(data, p_);
139 }
140
145 std::optional<inputs::InputSession> asSession() const {
146 ffi::InputSession data{};
147 if (!ffi::inputFillSession(p_, &data)) return std::nullopt;
148 return inputs::InputSession(data, p_);
149 }
150
155 std::optional<inputs::InputTime> asTime() const {
156 ffi::InputTime data{};
157 if (!ffi::inputFillTime(p_, &data)) return std::nullopt;
158 return inputs::InputTime(data);
159 }
160
165 std::optional<inputs::InputTextArea> asTextArea() const {
166 ffi::InputTextArea data{};
167 if (!ffi::inputFillTextArea(p_, &data)) return std::nullopt;
168 return inputs::InputTextArea(data);
169 }
170};
171
172} // namespace openpine
std::optional< inputs::InputString > asString() const
Gets the input as string type.
std::optional< inputs::InputSource > asSource() const
Gets the input as source type.
std::optional< inputs::InputColor > asColor() const
Gets the input as color type.
std::optional< inputs::InputPrice > asPrice() const
Gets the input as price type.
std::optional< inputs::InputFloat > asFloat() const
Gets the input as float type.
std::optional< inputs::InputEnum > asEnum() const
Gets the input as enum type.
std::optional< inputs::InputBool > asBool() const
Gets the input as boolean type.
std::optional< inputs::InputSymbol > asSymbol() const
Gets the input as symbol type.
std::optional< inputs::InputInt > asInt() const
Gets the input as integer type.
ScriptInput(const ffi::Input *p)
Constructs a wrapper around an opaque input handle.
std::optional< inputs::InputTime > asTime() const
Gets the input as time type.
std::optional< inputs::InputTextArea > asTextArea() const
Gets the input as text area type.
std::optional< inputs::InputSession > asSession() const
Gets the input as session type.
std::optional< inputs::InputTimeFrame > asTimeFrame() const
Gets the input as timeframe type.
Wrapper for a boolean script input.
Wrapper for a color script input.
Wrapper for an enum script input.
Wrapper for a float script input.
Wrapper for an integer script input.
Definition input_int.hpp:27
Wrapper for a price script input.
Wrapper for a session script input.
Wrapper for a source (OHLC) script input.
Wrapper for a string script input.
Wrapper for a symbol script input.
Wrapper for a text area script input.
Wrapper for a timeframe script input.
Wrapper for a time (timestamp) script input.
C++ wrappers for typed script input structs (InputInt, InputFloat, etc.).
Re-exports FFI types into the openpine namespace.