77 class FB_CPP_EXPORT
RequestMessage final :
private impl::ParameterSetter<RequestMessage, true>
84 descriptors{std::move(o.descriptors)},
85 message{std::move(o.message)},
86 statusWrapper{std::move(o.statusWrapper)},
87 numericConverter{std::move(o.numericConverter)},
88 calendarConverter{std::move(o.calendarConverter)},
89 row{std::make_unique<Row>(*client, descriptors, std::span<const std::byte>{message})}
98 descriptors = std::move(o.descriptors);
99 message = std::move(o.message);
100 statusWrapper = std::move(o.statusWrapper);
101 numericConverter = std::move(o.numericConverter);
102 calendarConverter = std::move(o.calendarConverter);
103 row = std::make_unique<Row>(*client, descriptors, std::span<const std::byte>{message});
133 using impl::ParameterSetter<
RequestMessage,
true>::clearParameters;
146 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueDecFloat16;
147 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueDecFloat34;
148 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueInt128;
150 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueTimeTz;
151 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueTimestamp;
152 using impl::ParameterSetter<
RequestMessage,
true>::setOpaqueTimestampTz;
153 using impl::ParameterSetter<
RequestMessage,
true>::setScaledInt16;
154 using impl::ParameterSetter<
RequestMessage,
true>::setScaledInt32;
155 using impl::ParameterSetter<
RequestMessage,
true>::setScaledInt64;
156 using impl::ParameterSetter<
RequestMessage,
true>::setScaledOpaqueInt128;
161 using impl::ParameterSetter<
RequestMessage,
true>::setTimestampTz;
163#if FB_CPP_USE_BOOST_MULTIPRECISION != 0
164 using impl::ParameterSetter<
RequestMessage,
true>::setBoostDecFloat16;
165 using impl::ParameterSetter<
RequestMessage,
true>::setBoostDecFloat34;
166 using impl::ParameterSetter<
RequestMessage,
true>::setBoostInt128;
167 using impl::ParameterSetter<
RequestMessage,
true>::setScaledBoostInt128;
170#if FB_CPP_USE_BOOST_DECIMAL != 0
171 using impl::ParameterSetter<
RequestMessage,
true>::setBoostDecimal128;
172 using impl::ParameterSetter<
RequestMessage,
true>::setBoostDecimal32;
173 using impl::ParameterSetter<
RequestMessage,
true>::setBoostDecimal64;
183 const std::vector<Descriptor>& getSetterDescriptors() const noexcept
188 std::vector<std::byte>& getSetterMessage() noexcept
193 Client& getSetterClient() noexcept
198 void validateSetter() const noexcept { }
200 explicit RequestMessage(Client& c,
const RequestMessageFormat& format)
202 descriptors{format.getDescriptors()},
203 message(format.getLength(), std::byte{0}),
206 calendarConverter{c},
207 row{std::make_unique<Row>(c, descriptors, std::span<const std::byte>{message})}
214 std::vector<Descriptor> descriptors;
215 std::vector<std::byte> message;
216 impl::StatusWrapper statusWrapper;
217 impl::NumericConverter numericConverter;
218 impl::CalendarConverter calendarConverter;
219 std::unique_ptr<Row> row;