dxFeed Graal CXX API v5.0.0
Loading...
Searching...
No Matches
OtcMarketsOrder.hpp
1// Copyright (c) 2025 Devexperts LLC.
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include "../../internal/Conf.hpp"
7
9
10#include "../../internal/Common.hpp"
11#include "../EventTypeEnum.hpp"
12#include "./Order.hpp"
13#include "./OtcMarketsPriceType.hpp"
14
15#include <cstdint>
16#include <memory>
17#include <string>
18
20
21struct EventMapper;
22
23/**
24 * Represents an extension of Order for the symbols traded on the OTC Markets. It includes the OTC Markets specific
25 * quote data, such as @ref OtcMarketsOrder::getQuoteAccessPayment() "Quote Access Payment (QAP) value",
26 * @ref OtcMarketsOrder::getOtcMarketsPriceType() "Quote Price Type",
27 * @ref OtcMarketsOrder::isOpen() "Open/Closed status",
28 * and @ref OtcMarketsOrder::isUnsolicited() "Unsolicited quote indicator". The original event (OTC Quote) published by
29 * the exchange is presented in the form of two separate OTCMarketsOrder events (bid and ask side).
30 * Note that the description of the fields (e.g. QAP) uses the original "quote" term.
31 * <p>
32 * For more information about original fields, QAP, Quote Flags and Extended Quote Flags,
33 * see <a href="https://downloads.dxfeed.com/specifications/OTC_Markets_Multicast_Data_Feeds.pdf">OTC Markets Multicast
34 * Data Feed</a>. <p> For more information about display requirements, see <a
35 * href="https://downloads.dxfeed.com/specifications/OTC_Markets_Data_Display_Requirements.pdf">OTC Markets Display
36 * Requirements</a>.
37 *
38 * <p> Like regular orders, OTC Markets order events arrive from multiple sources for the same market symbol and are
39 * distinguished by their @ref ::getIndex "index".
40 * It is unique across all the sources of depth information for the symbol.
41 * The event with @ref ::getSize() "size" either `0` or `NaN` is a signal to remove previously received order for the
42 * corresponding index.
43 * The method ::hasSize() is a convenient method to test for size presence.
44 *
45 * <h3>Quote Flags</h3>
46 *
47 * Quote Flags from OTC Markets are mapped to the access methods of this class as follows:
48 * <ul>
49 * <li>Update Side - @ref OtcMarketsOrder::getOrderSide() "orderSide"
50 * <li>State - @ref OtcMarketsOrder::isOpen() "open"
51 * <li>Ask/Bid Unsolicited - @ref OtcMarketsOrder::isUnsolicited() "unsolicited"
52 * <li>Ask/Bid Priced, Aks/Bid OW/BW - @ref OtcMarketsOrder::getOtcMarketsPriceType() "otcMarketsPriceType"
53 * </ul>
54 *
55 * <h3>Extended Quote Flags</h3>
56 *
57 * Extended Quote Flags from OTC Markets are mapped to the access methods of this class as follows:
58 * <ul>
59 * <li>QuoteSaturatedFlag - @ref OtcMarketsOrder::isSaturated() "saturated"
60 * <li>Bid/Offer AutoExFlag - @ref OtcMarketsOrder::isAutoExecution() "autoExecution"
61 * <li>NMSConditionalQuoteFlag - @ref OtcMarketsOrder::isNmsConditional() "nmsConditional"
62 * </ul>
63 *
64 * <h3><a name="eventFlagsSection">Event flags, transactions and snapshots</a></h3>
65 *
66 * OTC Markets order event sources provide a consistent view of the order book. Their updates
67 * may incorporate multiple changes to individual orders that have to be processed at the same time.
68 * The corresponding information is carried in @ref ::getEventFlags() "eventFlags" property.
69 *
70 * <p> See the "Event Flags" section of OrderBase class documentation for details.
71 *
72 * <h3>Publishing order books</h3>
73 *
74 * When publishing an order event with DXPublisher::publishEvents() method, least significant 32 bits of
75 * order @ref ::getIndex() "index" must be in a range of from 0 to `std::numeric_limits<std::int32_t>::max()`
76 * inclusive. Use ::setSource() method after ::setIndex() to properly include source identifier into the
77 * index.
78 *
79 * A snapshot has to be published in the <em>descending</em> order of @ref ::getIndex() "index", starting with
80 * an event with the largest index and marking it with EventFlag::SNAPSHOT_BEGIN bit in @ref ::getEventFlags()
81 * "eventFlags", and finishing the snapshot with an event that has zero 32 least significant bits of index.
82 * EventFlag::SNAPSHOT_END bit in @ref ::getEventFlags() "eventFlags" is optional during publishing.
83 * It will be properly set on receiving end anyway.
84 *
85 * <h3>Limitations</h3>
86 *
87 * This event type cannot be used with DXFeed::getLastEvent() method.
88 *
89 * <h3><a name="fobSection">Full Order Book Support</a></h3>
90 *
91 * Some feeds provide support for "Full Order Book" (FOB) where additional fields will be available:
92 * <ul>
93 * <li>@ref ::getAction() "action" - event business meaning (see OrderAction for more details)</li>
94 * <li>@ref ::getActionTime() "actionTime" - time of the last action</li>
95 * <li>@ref ::getOrderId() "orderId" - ID of this OTC Markets order</li>
96 * <li>@ref ::getAuxOrderId() "auxOrderId" - additional ID for this OTC Markets order</li>
97 * <li>@ref ::getTradeId() "tradeId" - trade (order execution) ID</li>
98 * <li>@ref ::getTradePrice() "tradePrice" - price of the trade</li>
99 * <li>@ref ::getTradeSize() "tradeSize" - size of the trade</li>
100 * </ul>
101 *
102 * <h3>Implementation details</h3>
103 *
104 * This event is implemented on top of QDS records `OtcMarketsOrder#<source-id>`,
105 * where `<source-id>` is up to 4 ASCII characters with a mnemonic for the source like "pink".
106 */
107class DXFCPP_EXPORT OtcMarketsOrder final : public Order {
108 friend struct EventMapper;
109
110 /*
111 * OTC Markets flags property has several significant bits that are packed into an integer in the following way:
112 * 31..7 6 5 4 3 2 1 0
113 * +-------+-----------------+---------------+-----------+--------+-------+-------------+------+
114 * | | NMS Conditional | AutoExecution | Saturated | OTC Price Type | Unsolicited | Open |
115 * +-------+-----------------+---------------+-----------+--------+-------+-------------+------+
116 * | Extended Quote Flags | Quote Flags |
117 * +-----------------------------------------------------+-------------------------------------+
118 */
119
120 static constexpr std::uint32_t NMS_CONDITIONAL = 1 << 6;
121 static constexpr std::uint32_t AUTO_EXECUTION = 1 << 5;
122 static constexpr std::uint32_t SATURATED = 1 << 4;
123
124 // OTC_PRICE_TYPE values are taken from OtcMarketsPriceType enum.
125 static constexpr std::uint32_t OTC_PRICE_TYPE_MASK = 3;
126 static constexpr std::uint32_t OTC_PRICE_TYPE_SHIFT = 2;
127
128 static constexpr std::uint32_t UNSOLICITED = 1 << 1;
129 static constexpr std::uint32_t OPEN = 1;
130
131 struct OtcMarketsOrderData {
132 std::int32_t quoteAccessPayment{};
133 std::int32_t otcMarketsFlags{};
134 };
135
136 OtcMarketsOrderData otcMarketsOrderData_{};
137
138 void fillData(void *graalNative) noexcept override;
139 void fillGraalData(void *graalNative) const noexcept override;
140
141 public:
142 /// The alias to a type of shared pointer to the OtcMarketsOrder object
143 using Ptr = std::shared_ptr<OtcMarketsOrder>;
144
145 /// The alias to a type of unique pointer to the OtcMarketsOrder object
146 using Unique = std::unique_ptr<OtcMarketsOrder>;
147
148 /// Type identifier and additional information about the current event class.
149 static const EventTypeEnum &TYPE;
150
151 /**
152 * Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
153 *
154 * @param graalNative The pointer to the dxFeed Graal SDK structure.
155 * @return The object of the current type.
156 * @throws InvalidArgumentException
157 */
158 static Ptr fromGraal(void *graalNative);
159
160 /**
161 * Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
162 * Fills the dxFeed Graal SDK structure's fields by the data of the current entity (recursively if necessary).
163 * Returns the pointer to the filled structure.
164 *
165 * @return The pointer to the filled dxFeed Graal SDK structure
166 */
167 void *toGraal() const override;
168
169 /**
170 * Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
171 *
172 * @param graalNative The pointer to the dxFeed Graal SDK structure.
173 * @throws InvalidArgumentException
174 */
175 static void freeGraal(void *graalNative);
176
177 ///
178 void assign(std::shared_ptr<EventType> event) override;
179
180 /// Creates new OTC Markets order event with default values.
181 OtcMarketsOrder() noexcept = default;
182
183 /**
184 * Creates new OTC Markets order event with the specified event symbol.
185 *
186 * @param eventSymbol The event symbol.
187 */
188 explicit OtcMarketsOrder(const StringLike& eventSymbol) noexcept : Order(eventSymbol) {
189 }
190
191 // MarketEvent methods
192
193 /**
194 * Changes the event's symbol and returns the current OTC Markets order.
195 *
196 * @param eventSymbol The symbol of this event.
197 * @return The current OTC Markets order.
198 */
199 OtcMarketsOrder &withEventSymbol(const StringLike &eventSymbol) noexcept override {
200 return dynamic_cast<OtcMarketsOrder &>(Order::withEventSymbol(eventSymbol));
201 }
202
203 /**
204 * Changes event's creation time and returns the current OTC Markets order.
205 *
206 * @param eventTime the difference, measured in milliseconds, between the event creation time and
207 * midnight, January 1, 1970 UTC.
208 * @return The current OTC Markets order.
209 */
210 OtcMarketsOrder &withEventTime(std::int64_t eventTime) noexcept {
211 return dynamic_cast<OtcMarketsOrder &>(Order::withEventTime(eventTime));
212 }
213
214 // OrderBase methods
215
216 /**
217 * Changes event's source and returns the current OTC Markets order.
218 * This method changes highest bits of the @ref OrderBase::getIndex() "index" of this event.
219 *
220 * @param source source of this event.
221 * @return The current OTC Markets order.
222 */
223 OtcMarketsOrder &withSource(const OrderSource &source) noexcept {
224 return dynamic_cast<OtcMarketsOrder &>(Order::withSource(source));
225 }
226
227 /**
228 * Changes transactional event flags and returns the current OTC Markets order.
229 * See EventFlag "Event Flags" section.
230 *
231 * @param eventFlags transactional event flags.
232 * @return The current OTC Markets order.
233 */
234 OtcMarketsOrder &withEventFlags(std::int32_t eventFlags) noexcept {
235 return dynamic_cast<OtcMarketsOrder &>(Order::withEventFlags(eventFlags));
236 }
237
238 /**
239 * Changes transactional event flags and returns the current OTC Markets order.
240 * See EventFlag "Event Flags" section.
241 *
242 * @param eventFlags transactional event flags' mask.
243 * @return The current OTC Markets order.
244 */
245 OtcMarketsOrder &withEventFlags(const EventFlagsMask &eventFlags) noexcept {
246 return dynamic_cast<OtcMarketsOrder &>(Order::withEventFlags(eventFlags));
247 }
248
249 /**
250 * Changes unique per-symbol index of this OTC Markets order and returns it. Note, that this method also changes
251 * @ref OrderBase::getSource() "source", whose id occupies highest bits of index.
252 * Use OrderBase::setSource() after invocation of this method to set the desired value of source.
253 *
254 * @param index unique per-symbol index of this OTC Markets order.
255 * @return The current OTC Markets order.
256 */
257 OtcMarketsOrder &withIndex(std::int64_t index) noexcept {
258 return dynamic_cast<OtcMarketsOrder &>(Order::withIndex(index));
259 }
260
261 /**
262 * Changes time of this OTC Markets order and returns it.
263 * Time is measured in milliseconds between the current time and midnight, January 1, 1970 UTC.
264 *
265 * @param time time of this OTC Markets order.
266 * @return The current OTC Markets order.
267 */
268 OtcMarketsOrder &withTime(std::int64_t time) noexcept {
269 return dynamic_cast<OtcMarketsOrder &>(Order::withTime(time));
270 }
271
272 /**
273 * Changes microseconds and nanoseconds time part of this OTC Markets order.
274 * Returns the current OTC Markets order.
275 *
276 * @param timeNanoPart microseconds and nanoseconds time part of this OTC Markets order.
277 * @return The current OTC Markets order.
278 */
279 OtcMarketsOrder &withTimeNanoPart(std::int32_t timeNanoPart) noexcept {
280 return dynamic_cast<OtcMarketsOrder &>(Order::withTimeNanoPart(timeNanoPart));
281 }
282
283 /**
284 * Changes @ref OrderBase::getSequence() "sequence number" of this OTC Markets order.
285 * Returns the current OTC Markets order.
286 *
287 * @param sequence the sequence.
288 * @return The current OTC Markets order.
289 * @see OrderBase::getSequence()
290 */
291 OtcMarketsOrder &withSequence(std::int32_t sequence) noexcept {
292 return dynamic_cast<OtcMarketsOrder &>(Order::withSequence(sequence));
293 }
294
295 /**
296 * Changes time of this OTC Markets order and returns it.
297 * Time is measured in nanoseconds between the current time and midnight, January 1, 1970 UTC.
298 *
299 * @param timeNanos The time of this OTC Markets order in nanoseconds.
300 * @return The current OTC Markets order.
301 */
302 OtcMarketsOrder &withTimeNanos(std::int64_t timeNanos) noexcept {
303 return dynamic_cast<OtcMarketsOrder &>(Order::withTimeNanos(timeNanos));
304 }
305
306 /**
307 * Changes action of this OTC Markets order and returns it.
308 *
309 * @param action The side of this OTC Markets order.
310 * @return The current OTC Markets order.
311 */
312 OtcMarketsOrder &withAction(const OrderAction &action) noexcept {
313 return dynamic_cast<OtcMarketsOrder &>(Order::withAction(action));
314 }
315
316 /**
317 * Changes time of the last action and returns current OTC Markets order.
318 *
319 * @param actionTime The last order action time.
320 * @return The current OTC Markets order.
321 */
322 OtcMarketsOrder &withActionTime(std::int64_t actionTime) noexcept {
323 return dynamic_cast<OtcMarketsOrder &>(Order::withActionTime(actionTime));
324 }
325
326 /**
327 * Changes order ID.
328 * Returns the current OTC Markets order.
329 *
330 * @param orderId The order ID.
331 * @return The current OTC Markets order.
332 */
333 OtcMarketsOrder &withOrderId(std::int64_t orderId) noexcept {
334 return dynamic_cast<OtcMarketsOrder &>(Order::withOrderId(orderId));
335 }
336
337 /**
338 * Changes auxiliary order ID.
339 * Returns the current OTC Markets order.
340 *
341 * @param auxOrderId The auxiliary order ID.
342 * @return The current OTC Markets order.
343 */
344 OtcMarketsOrder &withAuxOrderId(std::int64_t auxOrderId) noexcept {
345 return dynamic_cast<OtcMarketsOrder &>(Order::withAuxOrderId(auxOrderId));
346 }
347
348 /**
349 * Changes price of this OTC Markets order.
350 * Returns the current OTC Markets order.
351 *
352 * @param price The price of this OTC Markets order.
353 * @return The current OTC Markets order.
354 */
355 OtcMarketsOrder &withPrice(double price) noexcept {
356 return dynamic_cast<OtcMarketsOrder &>(Order::withPrice(price));
357 }
358
359 /**
360 * Changes size of this OTC Markets order.
361 * Returns the current OTC Markets order.
362 *
363 * @param size The size of this OTC Markets order.
364 * @return The current OTC Markets order.
365 */
366 OtcMarketsOrder &withSize(double size) noexcept {
367 return dynamic_cast<OtcMarketsOrder &>(Order::withSize(size));
368 }
369
370 /**
371 * Changes executed size of this OTC Markets order.
372 * Returns the current OTC Markets order.
373 *
374 * @param executedSize The executed size of this OTC Markets order.
375 * @return The current OTC Markets order.
376 */
377 OtcMarketsOrder &withExecutedSize(double executedSize) noexcept {
378 return dynamic_cast<OtcMarketsOrder &>(Order::withExecutedSize(executedSize));
379 }
380
381 /**
382 * Changes number of individual orders in this aggregate order.
383 * Returns the current OTC Markets order.
384 *
385 * @param count The number of individual orders in this aggregate order.
386 * @return The current OTC Markets order.
387 */
388 OtcMarketsOrder &withCount(std::int64_t count) noexcept {
389 return dynamic_cast<OtcMarketsOrder &>(Order::withCount(count));
390 }
391
392 /**
393 * Changes trade ID.
394 * Returns the current OTC Markets order.
395 *
396 * @param tradeId The trade ID.
397 * @return The current OTC Markets order.
398 */
399 OtcMarketsOrder &withTradeId(std::int64_t tradeId) noexcept {
400 return dynamic_cast<OtcMarketsOrder &>(Order::withTradeId(tradeId));
401 }
402
403 /**
404 * Changes trade price.
405 * Returns the current OTC Markets order.
406 *
407 * @param tradePrice The trade price.
408 * @return The current OTC Markets order.
409 */
410 OtcMarketsOrder &withTradePrice(double tradePrice) noexcept {
411 return dynamic_cast<OtcMarketsOrder &>(Order::withTradePrice(tradePrice));
412 }
413
414 /**
415 * Changes trade size.
416 * Returns the current OTC Markets order.
417 *
418 * @param tradeSize The trade size.
419 * @return The current OTC Markets order.
420 */
421 OtcMarketsOrder &withTradeSize(double tradeSize) noexcept {
422 return dynamic_cast<OtcMarketsOrder &>(Order::withTradeSize(tradeSize));
423 }
424
425 /**
426 * Changes exchange code of this OTC Markets order.
427 * Returns the current OTC Markets order.
428 *
429 * @param exchangeCode The exchange code of this OTC Markets order.
430 * @return The current OTC Markets order.
431 */
432 OtcMarketsOrder &withExchangeCode(char exchangeCode) noexcept {
433 return dynamic_cast<OtcMarketsOrder &>(Order::withExchangeCode(exchangeCode));
434 }
435
436 /**
437 * Changes exchange code of this OTC Markets order.
438 * Returns the current OTC Markets order.
439 *
440 * @param exchangeCode The exchange code of this OTC Markets order.
441 * @return The current OTC Markets order.
442 */
443 OtcMarketsOrder &withExchangeCode(std::int16_t exchangeCode) noexcept {
444 return dynamic_cast<OtcMarketsOrder &>(Order::withExchangeCode(exchangeCode));
445 }
446
447 /**
448 * Changes side of this OTC Markets order.
449 * Returns the current OTC Markets order.
450 *
451 * @param side The side of this OTC Markets order.
452 * @return The current OTC Markets order.
453 */
454 OtcMarketsOrder &withOrderSide(const Side &side) noexcept {
455 return dynamic_cast<OtcMarketsOrder &>(Order::withOrderSide(side));
456 }
457
458 /**
459 * Changes scope of this OTC Markets order.
460 * Returns the current OTC Markets order.
461 *
462 * @param scope The scope of this OTC Markets order.
463 * @return The current OTC Markets order.
464 */
465 OtcMarketsOrder &withScope(const Scope &scope) noexcept {
466 return dynamic_cast<OtcMarketsOrder &>(Order::withScope(scope));
467 }
468
469 // Order methods
470
471 /**
472 * Changes market maker or other aggregate identifier of this OTC Markets order.
473 * Returns the current OTC Markets order.
474 *
475 * @param marketMaker The market maker or another aggregate identifier of this OTC Markets order.
476 * @return The current OTC Markets order.
477 */
478 OtcMarketsOrder &withMarketMaker(const StringLike& marketMaker) noexcept {
479 return dynamic_cast<OtcMarketsOrder &>(Order::withMarketMaker(marketMaker));
480 }
481
482 // OtcMarketsOrder methods
483
484 /**
485 * Returns Quote Access Payment (QAP) of this OTC Markets order.
486 * QAP functionality allows participants to dynamically set access fees or rebates,
487 * in real-time and on a per-security basis through OTC Dealer or OTC FIX connections.
488 * Positive integers (1 to 30) indicate a rebate, and negative integers (-1 to -30) indicate an access fee.
489 * 0 indicates no rebate or access fee.
490 *
491 * @return QAP of this OTC Markets order.
492 */
493 std::int32_t getQuoteAccessPayment() const noexcept {
494 return otcMarketsOrderData_.quoteAccessPayment;
495 }
496
497 /**
498 * Changes Quote Access Payment (QAP) of this OTC Markets order.
499 *
500 * @param quoteAccessPayment QAP of this OTC Markets order.
501 */
502 void setQuoteAccessPayment(std::int32_t quoteAccessPayment) noexcept {
503 otcMarketsOrderData_.quoteAccessPayment = quoteAccessPayment;
504 }
505
506 /**
507 * Changes Quote Access Payment (QAP) and returns the current OTC Markets order.
508 *
509 * @param quoteAccessPayment QAP of this OTC Markets order.
510 * @return The current OTC Markets order.
511 */
512 OtcMarketsOrder &withQuoteAccessPayment(std::int32_t quoteAccessPayment) noexcept {
513 setQuoteAccessPayment(quoteAccessPayment);
514
515 return *this;
516 }
517
518 /**
519 * Returns whether this event is available for business within the operating hours of the OTC Link system.
520 * All quotes will be closed at the start of the trading day and will remain closed until the traders open theirs.
521 *
522 * @return `true` if this event is available for business within the operating hours of the OTC Link system.
523 */
524 bool isOpen() const noexcept {
525 return andOp(otcMarketsOrderData_.otcMarketsFlags, OPEN) != 0;
526 }
527
528 /**
529 * Changes whether this event is available for business within the operating hours of the OTC Link system.
530 *
531 * @param open `true` if this event is available for business within the operating hours of the OTC Link system.
532 */
533 void setOpen(bool open) noexcept {
534 otcMarketsOrderData_.otcMarketsFlags = open ? orOp(otcMarketsOrderData_.otcMarketsFlags, OPEN)
535 : andOp(otcMarketsOrderData_.otcMarketsFlags, ~OPEN);
536 }
537
538 /**
539 * Changes whether this event is available for business within the operating hours of the OTC Link system.
540 * Returns the current OTC Markets order.
541 *
542 * @param open `true` if this event is available for business within the operating hours of the OTC Link system.
543 * @return The current OTC Markets order.
544 */
545 OtcMarketsOrder &withOpen(bool open) noexcept {
546 setOpen(open);
547
548 return *this;
549 }
550
551 /**
552 * Returns whether this event is unsolicited.
553 *
554 * @return `true` if this event is unsolicited.
555 */
556 bool isUnsolicited() const noexcept {
557 return andOp(otcMarketsOrderData_.otcMarketsFlags, UNSOLICITED) != 0;
558 }
559
560 /**
561 * Changes whether this event is unsolicited.
562 *
563 * @param unsolicited `true` if this event is unsolicited.
564 */
565 void setUnsolicited(bool unsolicited) noexcept {
566 otcMarketsOrderData_.otcMarketsFlags = unsolicited
567 ? orOp(otcMarketsOrderData_.otcMarketsFlags, UNSOLICITED)
568 : andOp(otcMarketsOrderData_.otcMarketsFlags, ~UNSOLICITED);
569 }
570
571 /**
572 * Changes whether this event is unsolicited.
573 * Returns the current OTC Markets order.
574 *
575 * @param unsolicited `true` if this event is unsolicited.
576 * @return The current OTC Markets order.
577 */
578 OtcMarketsOrder &withUnsolicited(bool unsolicited) noexcept {
579 setUnsolicited(unsolicited);
580
581 return *this;
582 }
583
584 /**
585 * Returns OTC Markets price type of this OTC Markets order events.
586 *
587 * @return OTC Markets price type of this OTC Markets order events.
588 */
589 const OtcMarketsPriceType &getOtcMarketsPriceType() const & noexcept {
590 return OtcMarketsPriceType::valueOf(
591 getBits(otcMarketsOrderData_.otcMarketsFlags, OTC_PRICE_TYPE_MASK, OTC_PRICE_TYPE_SHIFT));
592 }
593
594 /**
595 * Changes OTC Markets price type of this OTC Markets order events.
596 *
597 * @param otcPriceType OTC Markets price type of this OTC Markets order events.
598 */
599 void setOtcMarketsPriceType(const OtcMarketsPriceType &otcPriceType) noexcept {
600 otcMarketsOrderData_.otcMarketsFlags = setBits(otcMarketsOrderData_.otcMarketsFlags, OTC_PRICE_TYPE_MASK,
601 OTC_PRICE_TYPE_SHIFT, otcPriceType.getCode());
602 }
603
604 /**
605 * Changes OTC Markets price type of this OTC Markets order events.
606 * Returns the current OTC Markets order.
607 *
608 * @param otcPriceType OTC Markets price type of this OTC Markets order events.
609 * @return The current OTC Markets order.
610 */
611 OtcMarketsOrder &withOtcMarketsPriceType(const OtcMarketsPriceType &otcPriceType) noexcept {
612 setOtcMarketsPriceType(otcPriceType);
613
614 return *this;
615 }
616
617 /**
618 * Returns whether this event should NOT be considered for the inside price.
619 *
620 * @return `true` if this event should NOT be considered for the inside price.
621 */
622 bool isSaturated() const noexcept {
623 return andOp(otcMarketsOrderData_.otcMarketsFlags, SATURATED) != 0;
624 }
625
626 /**
627 * Changes whether this event should NOT be considered for the inside price.
628 *
629 * @param saturated `true` if this event should NOT be considered for the inside price.
630 */
631 void setSaturated(bool saturated) noexcept {
632 otcMarketsOrderData_.otcMarketsFlags = saturated
633 ? orOp(otcMarketsOrderData_.otcMarketsFlags, SATURATED)
634 : andOp(otcMarketsOrderData_.otcMarketsFlags, ~SATURATED);
635 }
636
637 /**
638 * Changes whether this event should NOT be considered for the inside price.
639 * Returns the current OTC Markets order.
640 *
641 * @param saturated `true` if this event should NOT be considered for the inside price.
642 * @return The current OTC Markets order.
643 */
644 OtcMarketsOrder &withSaturated(bool saturated) noexcept {
645 setSaturated(saturated);
646
647 return *this;
648 }
649
650 /**
651 * Returns whether this event is in 'AutoEx' mode.
652 * If this event is in 'AutoEx' mode then a response to an OTC Link trade message will be immediate.
653 *
654 * @return `true` if this event is in 'AutoEx' mode.
655 */
656 bool isAutoExecution() const noexcept {
657 return andOp(otcMarketsOrderData_.otcMarketsFlags, AUTO_EXECUTION) != 0;
658 }
659
660 /**
661 * Changes whether this event is in 'AutoEx' mode.
662 *
663 * @param autoExecution `true` if this event is in 'AutoEx' mode.
664 */
665 void setAutoExecution(bool autoExecution) noexcept {
666 otcMarketsOrderData_.otcMarketsFlags =
667 autoExecution ? orOp(otcMarketsOrderData_.otcMarketsFlags, AUTO_EXECUTION)
668 : andOp(otcMarketsOrderData_.otcMarketsFlags, ~AUTO_EXECUTION);
669 }
670
671 /**
672 * Changes whether this event is in 'AutoEx' mode.
673 * Returns the current OTC Markets order.
674 *
675 * @param autoExecution `true` if this event is in 'AutoEx' mode.
676 * @return The current OTC Markets order.
677 */
678 OtcMarketsOrder &withAutoExecution(bool autoExecution) noexcept {
679 setAutoExecution(autoExecution);
680
681 return *this;
682 }
683
684 /**
685 * Returns whether this event represents a NMS conditional.
686 * This flag indicates the displayed @ref #getSize() "size" is a round lot at least two times greater than the
687 * minimum round lot size in the security and a trade message relating to the event cannot be sent or filled for
688 * less than the displayed size.
689 *
690 * @return `true` if this event represents a NMS conditional.
691 */
692 bool isNmsConditional() const noexcept {
693 return andOp(otcMarketsOrderData_.otcMarketsFlags, NMS_CONDITIONAL) != 0;
694 }
695
696 /**
697 * Changes whether this event represents a NMS conditional.
698 *
699 * @param nmsConditional `true` if this event represents a NMS conditional.
700 */
701 void setNmsConditional(bool nmsConditional) noexcept {
702 otcMarketsOrderData_.otcMarketsFlags =
703 nmsConditional ? orOp(otcMarketsOrderData_.otcMarketsFlags, NMS_CONDITIONAL)
704 : andOp(otcMarketsOrderData_.otcMarketsFlags, ~NMS_CONDITIONAL);
705 }
706
707 /**
708 * Changes whether this event represents a NMS conditional.
709 * Returns the current OTC Markets order.
710 *
711 * @param nmsConditional `true` if this event represents a NMS conditional.
712 * @return The current OTC Markets order.
713 */
714 OtcMarketsOrder &withNmsConditional(bool nmsConditional) noexcept {
715 setNmsConditional(nmsConditional);
716
717 return *this;
718 }
719
720 /**
721 * Returns a string representation of the current object.
722 *
723 * @return a string representation
724 */
725 std::string toString() const override;
726};
727
729
#define DXFCPP_MACRO_CONCAT_INNER(a, b)
Definition Common.hpp:129
#define DXFCPP_MACRO_CONCAT(a, b)
Definition Common.hpp:128
#define DXFCPP_MACRO_UNIQUE_NAME(base)
Definition Common.hpp:130
#define DXFCXX_DISABLE_MSC_WARNINGS_POP()
Definition Conf.hpp:31
#define DXFCPP_END_NAMESPACE
Definition Conf.hpp:97
#define DXFCPP_BEGIN_NAMESPACE
Definition Conf.hpp:94
#define DXFCXX_DISABLE_GCC_WARNINGS_PUSH(warnings)
Definition Conf.hpp:47
#define DXFCXX_DISABLE_GCC_WARNINGS_POP()
Definition Conf.hpp:49
#define DXFCXX_DISABLE_MSC_WARNINGS_PUSH(warnings)
Definition Conf.hpp:30
#define DXFCPP_TRACE_ISOLATES
Definition Debug.hpp:19
#define DXFCPP_DEBUG
Definition Debug.hpp:15
#define DXFCPP_TRACE_LISTS
Definition Debug.hpp:22
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_with_name(dxfc_dxendpoint_builder_t builderHandle, const char *name)
Changes the name used to distinguish multiple endpoints in the same process (GraalVM Isolate) in logs...
Definition DXEndpoint.cpp:680
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_with_properties(dxfc_dxendpoint_builder_t builder, const dxfc_dxendpoint_property_t **properties, size_t size)
Sets all supported properties from the provided properties object.
Definition DXEndpoint.cpp:713
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_password(dxfc_dxendpoint_t endpoint, const char *password)
Changes password for this endpoint.
Definition DXEndpoint.cpp:961
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_publisher(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxpublisher_t *publisher)
Definition DXEndpoint.cpp:1151
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_supports_property(dxfc_dxendpoint_builder_t builder, const char *key, DXFC_OUT int *supports)
Checks if a property is supported.
Definition DXEndpoint.cpp:740
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_add_state_change_listener(dxfc_dxendpoint_t endpoint, dxfc_dxendpoint_state_change_listener listener)
Adds a listener notified about changes in state property.
Definition DXEndpoint.cpp:1097
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_disconnect(dxfc_dxendpoint_t endpoint)
Terminates all remote network connections.
Definition DXEndpoint.cpp:1012
#define DXFCPP_EXPORT
Definition api.h:35
void * dxfc_dxendpoint_builder_t
The dxFeed endpoint's builder handle.
Definition api.h:207
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_close_and_await_termination(dxfc_dxendpoint_t endpoint)
Closes this endpoint and wait until all pending data processing tasks are completed.
Definition DXEndpoint.cpp:910
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_await_not_connected(dxfc_dxendpoint_t endpoint)
Waits while this endpoint state becomes NOT_CONNECTED or CLOSED.
Definition DXEndpoint.cpp:1063
dxfc_dxendpoint_state_t
Represents the current state of endpoint.
Definition api.h:149
@ DXFC_DXENDPOINT_STATE_CLOSED
Endpoint was closed.
Definition api.h:169
@ DXFC_DXENDPOINT_STATE_NOT_CONNECTED
Endpoint was created by is not connected to remote endpoints.
Definition api.h:153
@ DXFC_DXENDPOINT_STATE_CONNECTING
The connect function was called to establish connection to remove endpoint, but the connection is not...
Definition api.h:159
@ DXFC_DXENDPOINT_STATE_CONNECTED
The connection to the remote endpoint is established.
Definition api.h:164
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_instance(void *user_data, DXFC_OUT dxfc_dxendpoint_t *endpoint)
Returns a default application-wide singleton instance of dxFeed endpoint with a FEED role.
Definition DXEndpoint.cpp:799
#define DXFC_OUT
Definition api.h:17
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_state(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxendpoint_state_t *state)
Returns the state of this endpoint.
Definition DXEndpoint.cpp:1080
void * dxfc_dxendpoint_t
The dxFeed endpoint handle.
Definition api.h:198
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_with_property(dxfc_dxendpoint_builder_t builder, const char *key, const char *value)
Sets the specified property.
Definition DXEndpoint.cpp:696
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_free(dxfc_dxendpoint_builder_t builder)
Removes a builder from the registry.
Definition DXEndpoint.cpp:787
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_connect(dxfc_dxendpoint_t endpoint, const char *address)
Connects to the specified remote address.
Definition DXEndpoint.cpp:978
dxfc_error_code_t
List of error codes.
Definition api.h:49
@ DXFC_EC_ERROR
The error returned if the current operation cannot be completed.
Definition api.h:60
@ DXFC_EC_SUCCESS
OK.
Definition api.h:53
@ DXFC_EC_G_ERR
dxFeed Graal Native API error.
Definition api.h:57
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_remove_state_change_listener(dxfc_dxendpoint_t endpoint, dxfc_dxendpoint_state_change_listener listener)
Removes a listener notified about changes in state property.
Definition DXEndpoint.cpp:1123
DXFCPP_EXPORT dxfc_error_code_t dxfc_system_set_property(const char *key, const char *value)
Sets the system property indicated by the specified key.
Definition System.cpp:73
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_build(dxfc_dxendpoint_builder_t builder, void *user_data, DXFC_OUT dxfc_dxendpoint_t *endpoint)
Builds the new dxFeed endpoint instance.
Definition DXEndpoint.cpp:757
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_feed(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxfeed_t *feed)
Definition DXEndpoint.cpp:1146
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_await_processed(dxfc_dxendpoint_t endpoint)
Waits until this endpoint stops processing data (becomes quiescent).
Definition DXEndpoint.cpp:1046
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_close(dxfc_dxendpoint_t endpoint)
Closes this endpoint.
Definition DXEndpoint.cpp:893
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_new_builder(DXFC_OUT dxfc_dxendpoint_builder_t *builder)
Creates a new dxFeed endpoint's builder instance.
Definition DXEndpoint.cpp:647
void(* dxfc_dxendpoint_state_change_listener)(dxfc_dxendpoint_state_t old_state, dxfc_dxendpoint_state_t new_state, void *user_data)
The endpoint current state change listener.
Definition api.h:178
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_reconnect(dxfc_dxendpoint_t endpoint)
Terminates all established network connections and initiates connecting again with the same address.
Definition DXEndpoint.cpp:995
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_role(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxendpoint_role_t *role)
Returns the role of this endpoint.
Definition DXEndpoint.cpp:927
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_user(dxfc_dxendpoint_t endpoint, const char *user)
Changes username for this endpoint.
Definition DXEndpoint.cpp:944
DXFCPP_EXPORT dxfc_error_code_t dxfc_system_get_property(const char *key, DXFC_OUT char *buffer, size_t buffer_size)
Gets the system property indicated by the specified key.
dxfc_dxendpoint_role_t
Represents the role of an endpoint that was specified during its creation.
Definition api.h:89
@ DXFC_DXENDPOINT_ROLE_PUBLISHER
PUBLISHER endpoint connects to the remote publisher hub (also known as multiplexor) or creates a publ...
Definition api.h:127
@ DXFC_DXENDPOINT_ROLE_STREAM_FEED
STREAM_FEED endpoint is similar to DXFC_DXENDPOINT_ROLE_FEED and also connects to the remote data fee...
Definition api.h:116
@ DXFC_DXENDPOINT_ROLE_FEED
FEED endpoint connects to the remote data feed provider and is optimized for real-time or delayed dat...
Definition api.h:99
@ DXFC_DXENDPOINT_ROLE_STREAM_PUBLISHER
STREAM_PUBLISHER endpoint is similar to DXFC_DXENDPOINT_ROLE_PUBLISHER and also connects to the remot...
Definition api.h:136
@ DXFC_DXENDPOINT_ROLE_LOCAL_HUB
LOCAL_HUB endpoint is a local hub without the ability to establish network connections.
Definition api.h:143
@ DXFC_DXENDPOINT_ROLE_ON_DEMAND_FEED
ON_DEMAND_FEED endpoint is similar to DXFC_DXENDPOINT_ROLE_FEED, but it is designed to be used with d...
Definition api.h:107
void * dxfc_dxpublisher_t
The dxFeed publisher handle.
Definition api.h:217
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_create(void *user_data, DXFC_OUT dxfc_dxendpoint_t *endpoint)
Creates an endpoint with FEED role.
Definition DXEndpoint.cpp:846
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_instance2(dxfc_dxendpoint_role_t role, void *user_data, DXFC_OUT dxfc_dxendpoint_t *endpoint)
Returns a default application-wide singleton instance of DXEndpoint for a specific role.
Definition DXEndpoint.cpp:822
void * dxfc_dxfeed_t
The dxFeed handle.
Definition api.h:212
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_with_role(dxfc_dxendpoint_builder_t builder, dxfc_dxendpoint_role_t role)
Sets role for the created dxFeed endpoint.
Definition DXEndpoint.cpp:663
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_create2(dxfc_dxendpoint_role_t role, void *user_data, DXFC_OUT dxfc_dxendpoint_t *endpoint)
Creates an endpoint with a specified role.
Definition DXEndpoint.cpp:869
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_free(dxfc_dxendpoint_t endpoint)
Removes the dxFeed endpoint from the registry.
Definition DXEndpoint.cpp:1156
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_disconnect_and_clear(dxfc_dxendpoint_t endpoint)
Terminates all remote network connections and clears stored data.
Definition DXEndpoint.cpp:1029
AnalyticOrder & withTradePrice(double tradePrice) noexcept
Changes trade price.
Definition AnalyticOrder.cpp:189
AnalyticOrder & withIcebergHiddenSize(double icebergHiddenSize) noexcept
Changes iceberg hidden size and returns the current analytic order.
Definition AnalyticOrder.cpp:239
AnalyticOrder & withTime(std::int64_t time) noexcept
Changes time of this analytic order and returns it.
Definition AnalyticOrder.cpp:137
AnalyticOrder & withEventSymbol(const StringLike &eventSymbol) noexcept override
Changes an event's symbol and returns the current analytic order.
Definition AnalyticOrder.cpp:113
double getIcebergHiddenSize() const noexcept
Returns iceberg hidden size of this analytic order.
Definition AnalyticOrder.cpp:231
AnalyticOrder() noexcept=default
Creates new analytic order event with default values.
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition AnalyticOrder.cpp:69
AnalyticOrder & withOrderSide(const Side &side) noexcept
Changes side of this analytic order.
Definition AnalyticOrder.cpp:205
AnalyticOrder & withTradeId(std::int64_t tradeId) noexcept
Changes trade ID.
Definition AnalyticOrder.cpp:185
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition AnalyticOrder.cpp:82
static Ptr fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition AnalyticOrder.cpp:49
AnalyticOrder & withAction(const OrderAction &action) noexcept
Changes the action of this analytic order and returns it.
Definition AnalyticOrder.cpp:153
AnalyticOrder & withTimeNanos(std::int64_t timeNanos) noexcept
Changes time of this analytic order and returns it.
Definition AnalyticOrder.cpp:149
const IcebergType & getIcebergType() const &noexcept
Returns iceberg type of this analytic order.
Definition AnalyticOrder.cpp:259
AnalyticOrder & withActionTime(std::int64_t actionTime) noexcept
Changes time of the last action and returns the current analytic order.
Definition AnalyticOrder.cpp:157
AnalyticOrder & withTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of this analytic order.
Definition AnalyticOrder.cpp:141
AnalyticOrder & withExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this analytic order.
Definition AnalyticOrder.cpp:201
AnalyticOrder(const StringLike &eventSymbol) noexcept
Creates a new analytic order event with the specified event symbol.
Definition AnalyticOrder.cpp:110
AnalyticOrder & withScope(const Scope &scope) noexcept
Changes the scope of this analytic order.
Definition AnalyticOrder.cpp:209
void setIcebergPeakSize(double icebergPeakSize) noexcept
Changes iceberg peak size of this analytic order.
Definition AnalyticOrder.cpp:221
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition AnalyticOrder.cpp:102
double getIcebergPeakSize() const noexcept
Returns iceberg peak size of this analytic order.
Definition AnalyticOrder.cpp:217
AnalyticOrder & withPrice(double price) noexcept
Changes price of this analytic order.
Definition AnalyticOrder.cpp:169
void setIcebergExecutedSize(double icebergExecutedSize) noexcept
Changes the iceberg executed size of this analytic order.
Definition AnalyticOrder.cpp:249
std::string toString() const override
Returns a string representation of the current object.
Definition AnalyticOrder.cpp:274
void setIcebergHiddenSize(double icebergHiddenSize) noexcept
Changes iceberg hidden size of this analytic order.
Definition AnalyticOrder.cpp:235
static const EventTypeEnum & TYPE
Type identifier and additional information about the current event class.
Definition AnalyticOrder.hpp:83
AnalyticOrder & withCount(std::int64_t count) noexcept
Changes the number of individual orders in this aggregate order.
Definition AnalyticOrder.cpp:181
AnalyticOrder & withIndex(std::int64_t index) noexcept
Changes the unique per-symbol index of this analytic order and returns it.
Definition AnalyticOrder.cpp:133
AnalyticOrder & withAuxOrderId(std::int64_t auxOrderId) noexcept
Changes auxiliary order ID.
Definition AnalyticOrder.cpp:165
AnalyticOrder & withIcebergPeakSize(double icebergPeakSize) noexcept
Changes iceberg peak size and returns the current analytic order.
Definition AnalyticOrder.cpp:225
AnalyticOrder & withSequence(std::int32_t sequence) noexcept
Changes sequence number of this analytic order.
Definition AnalyticOrder.cpp:145
AnalyticOrder & withTradeSize(double tradeSize) noexcept
Changes trade size.
Definition AnalyticOrder.cpp:193
double getIcebergExecutedSize() const noexcept
Returns iceberg executed size of this analytic order.
Definition AnalyticOrder.cpp:245
AnalyticOrder & withEventFlags(std::int32_t eventFlags) noexcept
Changes transactional event flags and returns the current analytic order.
Definition AnalyticOrder.cpp:125
AnalyticOrder & withOrderId(std::int64_t orderId) noexcept
Changes order ID.
Definition AnalyticOrder.cpp:161
AnalyticOrder & withEventTime(std::int64_t eventTime) noexcept
Changes the event's creation time and returns the current analytic order.
Definition AnalyticOrder.cpp:117
AnalyticOrder & withEventFlags(const EventFlagsMask &eventFlags) noexcept
Changes transactional event flags and returns the current analytic order.
Definition AnalyticOrder.cpp:129
AnalyticOrder & withIcebergExecutedSize(double icebergExecutedSize) noexcept
Changes iceberg executed size and returns the current analytic order.
Definition AnalyticOrder.cpp:253
AnalyticOrder & withExchangeCode(char exchangeCode) noexcept
Changes exchange code of this analytic order.
Definition AnalyticOrder.cpp:197
void setIcebergType(const IcebergType &icebergType) noexcept
Changes iceberg type of this analytic order.
Definition AnalyticOrder.cpp:263
AnalyticOrder & withSize(double size) noexcept
Changes size of this analytic order.
Definition AnalyticOrder.cpp:173
AnalyticOrder & withMarketMaker(const StringLike &marketMaker) noexcept
Changes market maker or other aggregate identifier of this analytic order.
Definition AnalyticOrder.cpp:213
AnalyticOrder & withIcebergType(const IcebergType &icebergType) noexcept
Changes an iceberg type and returns the current analytic order.
Definition AnalyticOrder.cpp:268
AnalyticOrder & withExecutedSize(double executedSize) noexcept
Changes executed size of this analytic order.
Definition AnalyticOrder.cpp:177
AnalyticOrder & withSource(const OrderSource &source) noexcept
Changes an event's source and returns the current analytic order.
Definition AnalyticOrder.cpp:121
void setSequence(std::int32_t sequence)
Changes sequence number of this event.
Definition Candle.cpp:251
Candle & withBidVolume(double bidVolume) noexcept
Changes bid volume in this candle.
Definition Candle.cpp:374
double getImpVolatility() const noexcept
Returns the implied volatility.
Definition Candle.cpp:394
void setClose(double close) noexcept
Changes the last (close) price of this candle.
Definition Candle.cpp:328
Candle & withSequence(std::int32_t sequence) noexcept
Changes sequence number of this event.
Definition Candle.cpp:262
void setTime(std::int64_t time) noexcept
Changes the timestamp of the event in milliseconds.
Definition Candle.cpp:235
void setBidVolume(double bidVolume) noexcept
Changes bid volume in this candle.
Definition Candle.cpp:370
void setEventFlags(std::int32_t eventFlags) noexcept override
Changes transactional event flags.
Definition Candle.cpp:193
static Ptr fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition Candle.cpp:84
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition Candle.cpp:117
void setImpVolatility(double impVolatility)
Changes implied volatility.
Definition Candle.cpp:398
Candle & withOpen(double open) noexcept
Changes the first (open) price of this candle.
Definition Candle.cpp:290
Candle & withHigh(double high) noexcept
Changes the maximal (high) price of this candle.
Definition Candle.cpp:304
Candle & withCount(std::int64_t count) noexcept
Changes total number of original trade (or quote) events in this candle.
Definition Candle.cpp:276
Candle & withAskVolume(double askVolume) noexcept
Changes ask volume in this candle.
Definition Candle.cpp:388
double getAskVolume() const noexcept
Returns ask volume in this candle.
Definition Candle.cpp:380
std::int64_t getTime() const noexcept override
Returns the timestamp of the event in milliseconds.
Definition Candle.cpp:229
Candle(CandleSymbol eventSymbol) noexcept
Creates a new candle with the specified candle event symbol.
Definition Candle.cpp:144
void setEventSymbol(const CandleSymbol &eventSymbol) noexcept override
Changes the event symbol that identifies this event type in subscription.
Definition Candle.cpp:159
void setOpen(double open) noexcept
Changes the first (open) price of this candle.
Definition Candle.cpp:286
Candle() noexcept=default
Creates a new candle with default values.
const std::optional< CandleSymbol > & getEventSymbolOpt() const &noexcept override
Returns a symbol of this event.
Definition Candle.cpp:155
double getOpen() const noexcept
Returns the first (open) price of this candle.
Definition Candle.cpp:282
void setEventTime(std::int64_t eventTime) noexcept override
Changes event creation time.
Definition Candle.cpp:173
std::int64_t getCount() const noexcept
Returns total number of original trade (or quote) events in this candle.
Definition Candle.cpp:268
void setAskVolume(double askVolume) noexcept
Changes ask volume in this candle.
Definition Candle.cpp:384
double getBidVolume() const noexcept
Returns bid volume in this candle.
Definition Candle.cpp:366
Candle & withEventFlags(const EventFlagsMask &eventFlags) noexcept
Changes transactional event flags and returns the current candle.
Definition Candle.cpp:207
const CandleSymbol & getEventSymbol() const &noexcept override
Returns a symbol of this event.
Definition Candle.cpp:147
double getHigh() const noexcept
Returns the maximal (high) price of this candle.
Definition Candle.cpp:296
Candle & withClose(double close) noexcept
Changes the last (close) price of this candle.
Definition Candle.cpp:332
void setHigh(double high) noexcept
Changes the maximal (high) price of this candle.
Definition Candle.cpp:300
double getVWAP() const noexcept
Returns volume-weighted average price (VWAP) in this candle.
Definition Candle.cpp:352
Candle & withVolume(double volume) noexcept
Changes total volume in this candle.
Definition Candle.cpp:346
Candle & withEventFlags(std::int32_t eventFlags) noexcept
Changes transactional event flags and returns the current candle.
Definition Candle.cpp:197
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition Candle.cpp:104
double getLow() const noexcept
Returns the minimal (low) price of this candle.
Definition Candle.cpp:310
Candle & withIndex(std::int64_t index) noexcept
Changes the unique per-symbol index of this event.
Definition Candle.cpp:217
Candle & withLow(double low) noexcept
Changes the minimal (low) price of this candle.
Definition Candle.cpp:318
Candle & withEventSymbol(const CandleSymbol &eventSymbol) noexcept
Changes an event's symbol and returns the current candle.
Definition Candle.cpp:163
EventFlagsMask getEventFlagsMask() const noexcept override
Returns transactional event flags.
Definition Candle.cpp:189
double getVolume() const noexcept
Returns total volume in this candle.
Definition Candle.cpp:338
std::int64_t getIndex() const noexcept override
Returns unique per-symbol index of this event.
Definition Candle.cpp:225
void setLow(double low) noexcept
Changes the minimal (low) price of this candle.
Definition Candle.cpp:314
void setEventFlags(const EventFlagsMask &eventFlags) noexcept override
Changes transactional event flags.
Definition Candle.cpp:203
void setIndex(std::int64_t index) override
Changes unique per-symbol index of this event.
Definition Candle.cpp:213
Candle & withImpVolatility(double impVolatility) noexcept
Changes implied volatility.
Definition Candle.cpp:402
void setOpenInterest(double openInterest) noexcept
Changes the open interest.
Definition Candle.cpp:412
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition Candle.cpp:124
Candle & withOpenInterest(double openInterest) noexcept
Changes the open interest.
Definition Candle.cpp:416
std::int64_t getEventTime() const noexcept override
Returns time when an event was created or zero when time is not available.
Definition Candle.cpp:169
Candle & withTime(std::int64_t time) noexcept
Changes the timestamp of the event in milliseconds.
Definition Candle.cpp:241
Candle & withVWAP(double vwap) noexcept
Changes volume-weighted average price (VWAP) in this candle.
Definition Candle.cpp:360
static constexpr std::uint32_t MAX_SEQUENCE
Maximum allowed sequence value.
Definition Candle.hpp:119
void setVWAP(double vwap) noexcept
Changes volume-weighted average price (VWAP) in this candle.
Definition Candle.cpp:356
static const EventTypeEnum & TYPE
Type identifier and additional information about the current event class.
Definition Candle.hpp:112
double getClose() const noexcept
Returns the last (close) price of this candle.
Definition Candle.cpp:324
Candle & withEventTime(std::int64_t eventTime) noexcept
Changes event's creation time and returns the current candle.
Definition Candle.cpp:177
std::int32_t getSequence() const noexcept
Returns the sequence number of this event to distinguish events that have the same time.
Definition Candle.cpp:247
std::int32_t getEventFlags() const noexcept override
Returns transactional event flags.
Definition Candle.cpp:185
void setCount(std::int64_t count) noexcept
Changes total number of original trade (or quote) events in this candle.
Definition Candle.cpp:272
double getOpenInterest() const noexcept
Returns the open interest.
Definition Candle.cpp:408
std::string toString() const override
Returns a string representation of the current object.
Definition Candle.cpp:424
void setVolume(double volume) noexcept
Changes total volume in this candle.
Definition Candle.cpp:342
Builder class for DXEndpoint that supports additional configuration properties.
Definition DXEndpoint.hpp:842
std::shared_ptr< DXEndpoint > build()
Builds DXEndpoint instance.
Definition DXEndpoint.cpp:323
std::shared_ptr< Builder > withName(const StringLike &name)
Changes the name used to distinguish multiple endpoints in the same process (GraalVM Isolate) in logs...
Definition DXEndpoint.cpp:366
bool supportsProperty(const StringLike &key) const
Checks if a property is supported.
Definition DXEndpoint.cpp:313
std::shared_ptr< Builder > withProperties(Properties &&properties)
Sets all supported properties from the provided properties object.
Definition DXEndpoint.hpp:931
~Builder() noexcept override
Releases the GraalVM handle.
Definition DXEndpoint.cpp:355
std::shared_ptr< Builder > withRole(Role role)
Sets role for the created DXEndpoint.
Definition DXEndpoint.cpp:285
std::shared_ptr< Builder > withProperty(const StringLike &key, const StringLike &value)
Sets the specified property.
Definition DXEndpoint.cpp:298
Subscription for a set of symbols and event types.
Definition DXFeedSubscription.hpp:39
void removeEventListener(std::size_t listenerId)
Removes listener for events.
Definition DXFeedSubscription.cpp:255
bool containsEventType(const EventTypeEnum &eventType) override
Returns true if this subscription contains the corresponding event type.
Definition DXFeedSubscription.cpp:182
std::size_t addChangeListener(std::shared_ptr< ObservableSubscriptionChangeListener > listener) override
Adds subscription change listener.
Definition DXFeedSubscription.cpp:265
bool isClosed() override
Returns true if this subscription is closed.
Definition DXFeedSubscription.cpp:160
void addSymbols(SymbolIt begin, SymbolIt end) const
Adds the specified collection (using iterators) of symbols to the set of subscribed symbols.
Definition DXFeedSubscription.hpp:430
static std::shared_ptr< DXFeedSubscription > create(std::initializer_list< EventTypeEnum > eventTypes)
Creates a detached subscription for the given collection of event types.
Definition DXFeedSubscription.cpp:133
void close() const
Closes this subscription and makes it permanently detached.
Definition DXFeedSubscription.cpp:169
void setEventsBatchLimit(std::int32_t eventsBatchLimit) const
Sets maximum number of events in the single notification of OnEventHandler.
Definition DXFeedSubscription.cpp:303
std::unordered_set< EventTypeEnum > getEventTypes() override
Returns a set of subscribed event types.
Definition DXFeedSubscription.cpp:178
void setSymbols(std::initializer_list< SymbolWrapper > collection) const
Changes the set of subscribed symbols so that it contains just the symbols from the specified collect...
Definition DXFeedSubscription.cpp:213
void removeSymbols(SymbolIt begin, SymbolIt end) const
Removes the specified collection (using iterators) of symbols from the set of subscribed symbols.
Definition DXFeedSubscription.hpp:502
void removeSymbols(SymbolsCollection &&collection) const
Removes the specified collection of symbols from the set of subscribed symbols.
Definition DXFeedSubscription.hpp:528
static const std::int32_t MAX_BATCH_LIMIT
The maximum events' batch limit for a single notification in OnEventHandler.
Definition DXFeedSubscription.hpp:55
void removeSymbols(const SymbolWrapper &symbolWrapper) const
Removes the specified symbol from the set of subscribed symbols.
Definition DXFeedSubscription.cpp:232
static std::shared_ptr< DXFeedSubscription > create(EventTypeIt begin, EventTypeIt end)
Creates a detached subscription for the given collection of event types.
Definition DXFeedSubscription.hpp:211
void attach(std::shared_ptr< DXFeed > feed)
Attaches subscription to the specified feed.
Definition DXFeedSubscription.cpp:142
TimePeriod getAggregationPeriod() const
Returns the aggregation period for data for this subscription instance.
Definition DXFeedSubscription.cpp:247
std::string toString() const override
Returns a string representation of the current object.
Definition DXFeedSubscription.cpp:100
static const std::int32_t OPTIMAL_BATCH_LIMIT
The optimal events' batch limit for a single notification in OnEventHandler.
Definition DXFeedSubscription.hpp:50
std::size_t addEventListener(std::function< void(const std::vector< std::shared_ptr< EventT > > &)> &&listener)
Adds typed listener for events.
Definition DXFeedSubscription.hpp:675
void addSymbols(std::initializer_list< SymbolWrapper > collection) const
Adds the specified collection (initializer list) of symbols to the set of subscribed symbols.
Definition DXFeedSubscription.cpp:228
void setSymbols(SymbolsCollection &&collection) const
Changes the set of subscribed symbols so that it contains just the symbols from the specified collect...
Definition DXFeedSubscription.hpp:381
void setAggregationPeriod(const TimePeriod &aggregationPeriod) const
Sets the aggregation period for data.
Definition DXFeedSubscription.cpp:251
static std::shared_ptr< DXFeedSubscription > create(const EventTypeEnum &eventType)
Creates a detached subscription for a single event type.
Definition DXFeedSubscription.cpp:119
std::int32_t getEventsBatchLimit() const
Definition DXFeedSubscription.cpp:299
std::size_t addEventListener(EventListener &&listener)
Adds listener for events.
Definition DXFeedSubscription.hpp:620
static std::shared_ptr< DXFeedSubscription > create(EventTypesCollection &&eventTypes)
Creates a detached subscription for the given collection of event types.
Definition DXFeedSubscription.hpp:257
OnEventHandler & onEvent()
Returns a reference to an incoming events' handler (delegate), to which listeners can be added and re...
Definition DXFeedSubscription.cpp:259
void addSymbols(const SymbolsCollection &collection) const
Adds the specified collection of symbols to the set of subscribed symbols.
Definition DXFeedSubscription.hpp:456
void setSymbols(SymbolIt begin, SymbolIt end) const
Changes the set of subscribed symbols so that it contains just the symbols from the specified collect...
Definition DXFeedSubscription.hpp:355
void setAggregationPeriod(std::int64_t aggregationPeriod) const
Sets the aggregation period for data.
Definition DXFeedSubscription.hpp:584
void removeChangeListener(std::size_t changeListenerId) override
Removes subscription change listener by id.
Definition DXFeedSubscription.cpp:282
std::vector< SymbolWrapper > getDecoratedSymbols() const
Returns a set of decorated symbols (depending on the actual implementation of the subscription).
Definition DXFeedSubscription.cpp:204
void clear() const
Clears the set of subscribed symbols.
Definition DXFeedSubscription.cpp:186
void detach(std::shared_ptr< DXFeed > feed)
Detaches subscription from the specified feed.
Definition DXFeedSubscription.cpp:151
void addSymbols(const SymbolWrapper &symbolWrapper) const
Adds the specified symbol to the set of subscribed symbols.
Definition DXFeedSubscription.cpp:217
void setAggregationPeriod(std::chrono::milliseconds aggregationPeriod) const
Sets the aggregation period for data.
Definition DXFeedSubscription.hpp:571
void removeSymbols(std::initializer_list< SymbolWrapper > collection) const
Removes the specified collection (initializer list) of symbols from the set of subscribed symbols.
Definition DXFeedSubscription.cpp:243
std::vector< SymbolWrapper > getSymbols() const
Returns a set of subscribed symbols (depending on the actual implementation of the subscription).
Definition DXFeedSubscription.cpp:195
Extends DXFeedSubscription to conveniently subscribe to time-series of events for a set of symbols an...
Definition DXFeedSubscription.hpp:786
std::int64_t getFromTime()
Returns the earliest timestamp from which time-series of events shall be received.
Definition DXFeedSubscription.cpp:331
void setFromTime(std::chrono::milliseconds fromTime)
Sets the earliest timestamp from which time-series of events shall be received.
Definition DXFeedSubscription.cpp:342
std::string toString() const override
Returns a string representation of the current object.
Definition DXFeedSubscription.cpp:327
void setFromTime(std::int64_t fromTime)
Sets the earliest timestamp from which time-series of events shall be received.
Definition DXFeedSubscription.cpp:335
bool in(std::uint32_t eventFlagsMask) const noexcept
Determines if the given flag is in the mask.
Definition EventFlag.hpp:199
std::uint32_t getFlag() const noexcept
Definition EventFlag.hpp:188
static bool isSnapshotSnip(const std::shared_ptr< Event > &event)
Determines if the given event is marked as a snapshot snip.
Definition EventFlag.hpp:349
friend std::uint32_t operator|(std::uint32_t eventFlag1, const EventFlag &eventFlag2) noexcept
Performs a bit or operation with two event flags.
Definition EventFlag.hpp:294
friend std::uint32_t operator&(const EventFlag &eventFlag1, std::uint32_t eventFlag2) noexcept
Performs a bit and operation with two event flags.
Definition EventFlag.hpp:305
friend std::int32_t operator|(const EventFlag &eventFlag1, std::int32_t eventFlag2) noexcept
Performs a bit or operation with two event flags.
Definition EventFlag.hpp:239
EventFlag() noexcept
Creates the invalid event flag.
Definition EventFlag.hpp:182
static bool isSnapshotBegin(const std::shared_ptr< Event > &event)
Determines if the given event marks the beginning of a snapshot.
Definition EventFlag.hpp:327
friend std::int32_t operator&(const EventFlag &eventFlag1, std::int32_t eventFlag2) noexcept
Performs a bit and operation with two event flags.
Definition EventFlag.hpp:261
static const EventFlag SNAPSHOT_SNIP
0x10 - A bitmask to get snapshot snip indicator from the value of eventFlags property.
Definition EventFlag.hpp:12
friend std::int32_t operator|(std::int32_t eventFlag1, const EventFlag &eventFlag2) noexcept
Performs a bit or operation with two event flags.
Definition EventFlag.hpp:250
static bool isPending(const std::shared_ptr< Event > &event)
Determines if the given event is in a pending state.
Definition EventFlag.hpp:370
friend std::int32_t operator&(std::int32_t eventFlag1, const EventFlag &eventFlag2) noexcept
Performs a bit and operation with two event flags.
Definition EventFlag.hpp:272
static const EventFlag SNAPSHOT_MODE
0x40 - A bitmask to set snapshot mode indicator into the value of eventFlags property.
Definition EventFlag.hpp:14
bool in(const EventFlagsMask &eventFlagsMask) const noexcept
Determines if the given flag is in the mask.
Definition EventFlag.hpp:212
static const EventFlag TX_PENDING
0x01 - A bitmask to get transaction pending indicator from the value of eventFlags property.
Definition EventFlag.hpp:8
friend std::uint32_t operator|(const EventFlag &eventFlag1, std::uint32_t eventFlag2) noexcept
Performs a bit or operation with two event flags.
Definition EventFlag.hpp:283
static bool isRemove(const std::shared_ptr< Event > &event)
Determines if the given event is marked for removal.
Definition EventFlag.hpp:381
static bool isSnapshotEndOrSnip(const std::shared_ptr< Event > &event)
Determines if the given event marks the end of a snapshot or a snapshot snip.
Definition EventFlag.hpp:359
static const EventFlag SNAPSHOT_BEGIN
0x04 - A bitmask to get snapshot begin indicator from the value of eventFlags property.
Definition EventFlag.hpp:10
friend std::uint32_t operator&(std::uint32_t eventFlag1, const EventFlag &eventFlag2) noexcept
Performs a bit and operation with two event flags.
Definition EventFlag.hpp:316
static const EventFlag REMOVE_SYMBOL
0x80 - For internal use.
Definition EventFlag.hpp:15
static const EventFlag SNAPSHOT_END
0x08 - A bitmask to get snapshot end indicator from the value of eventFlags property.
Definition EventFlag.hpp:11
static const EventFlag REMOVE_EVENT
0x02 - A bitmask to get removal indicator from the value of eventFlags property.
Definition EventFlag.hpp:9
static bool isSnapshotEnd(const std::shared_ptr< Event > &event)
Determines if the given event marks the end of a snapshot.
Definition EventFlag.hpp:338
constexpr std::uint32_t getMask() const noexcept
Returns an integer representation of an event mask.
Definition EventFlag.hpp:445
bool contains(const EventFlag &flag) const noexcept
Definition EventFlag.hpp:453
friend EventFlagsMask operator|(const EventFlagsMask &eventFlagsMask, const EventFlag &eventFlag) noexcept
Performs a bit or operation with an event flags' mask and an event flag.
Definition EventFlag.hpp:464
EventFlagsMask() noexcept
Creates an empty event flags mask.
Definition EventFlag.hpp:405
EventFlagsMask(std::initializer_list< EventFlag > eventFlags) noexcept
Creates event flags mask by initializer list with flags.
Definition EventFlag.hpp:436
EventFlagsMask(MaskType mask) noexcept
Create event flags mask by integer value.
Definition EventFlag.hpp:415
EventFlagsMask(EventFlagIt begin, EventFlagIt end) noexcept
Creates event flags mask by iterators of container with flags.
Definition EventFlag.hpp:425
friend EventFlagsMask operator&(const EventFlagsMask &eventFlagsMask, const EventFlag &eventFlag) noexcept
Performs a bit and operation with an event flags' mask and an event flag.
Definition EventFlag.hpp:475
The enumeration type that provides additional information about the dxFeed Graal C++-API event type.
Definition EventTypeEnum.hpp:21
bool isTimeSeries() const noexcept
Definition EventTypeEnum.hpp:174
const std::string & getClassName() const &noexcept
Definition EventTypeEnum.hpp:117
bool isLasting() const noexcept
Definition EventTypeEnum.hpp:160
bool isOnlyIndexed() const noexcept
Definition EventTypeEnum.hpp:181
bool isIndexed() const noexcept
Definition EventTypeEnum.hpp:167
std::uint32_t getId() const noexcept
Definition EventTypeEnum.hpp:103
bool isMarket() const noexcept
Definition EventTypeEnum.hpp:188
const std::string & getName() const &noexcept
Definition EventTypeEnum.hpp:110
Builder is a static inner class that provides a flexible and readable way to construct instances of t...
Definition HistoryEndpoint.hpp:107
std::shared_ptr< Builder > withAuthToken(const StringLike &authToken)
Sets the authentication token for the target endpoint.
Definition HistoryEndpoint.cpp:50
std::shared_ptr< Builder > withAddress(const StringLike &address)
Specifies the address for the target endpoint.
Definition HistoryEndpoint.cpp:32
std::shared_ptr< HistoryEndpoint > build() const
Builds and returns a configured instance of HistoryEndpoint.
Definition HistoryEndpoint.cpp:68
std::shared_ptr< Builder > withFormat(Format format)
Sets the format to be used for data handling.
Definition HistoryEndpoint.cpp:62
std::shared_ptr< Builder > withPassword(const StringLike &password)
Sets the password for the target endpoint.
Definition HistoryEndpoint.cpp:44
std::shared_ptr< Builder > withUserName(const StringLike &userName)
Sets the username for the target endpoint.
Definition HistoryEndpoint.cpp:38
std::shared_ptr< Builder > withCompression(Compression compression)
Sets the compression type to be used for data transmission or storage.
Definition HistoryEndpoint.cpp:56
std::shared_ptr< Builder > withAuthToken(const AuthToken &authToken)
Sets the authentication token for the target endpoint.
Definition HistoryEndpoint.hpp:154
Source identifier for IndexedEvent.
Definition IndexedEventSource.hpp:22
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition IndexedEventSource.cpp:18
const std::string & name() const noexcept
Returns the string representation of the object.
Definition IndexedEventSource.hpp:91
static IndexedEventSource fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition IndexedEventSource.cpp:29
static const IndexedEventSource DEFAULT
The default source with zero identifier for all events that do not support multiple sources.
Definition IndexedEventSource.hpp:10
std::int32_t id() const noexcept
Returns the source identifier.
Definition IndexedEventSource.hpp:82
virtual void * toGraal() const
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition IndexedEventSource.cpp:12
std::string toString() const
Returns the string representation of the object.
Definition IndexedEventSource.hpp:100
Represents a subscription to a specific source of indexed events.
Definition IndexedEventSubscriptionSymbol.hpp:37
virtual const std::unique_ptr< SymbolWrapper > & getEventSymbol() const
Returns the wrapped event symbol (CandleSymbol, WildcardSymbol, etc.).
Definition IndexedEventSubscriptionSymbol.cpp:18
virtual void * toGraal() const
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition IndexedEventSubscriptionSymbol.cpp:26
static IndexedEventSubscriptionSymbol fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure (rec...
Definition IndexedEventSubscriptionSymbol.cpp:48
virtual const std::unique_ptr< IndexedEventSource > & getSource() const
Returns indexed event source.
Definition IndexedEventSubscriptionSymbol.cpp:22
IndexedEventSubscriptionSymbol(const SymbolWrapper &eventSymbol, const IndexedEventSource &source)
Creates an indexed event subscription symbol with a specified event symbol and source.
Definition IndexedEventSubscriptionSymbol.cpp:12
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition IndexedEventSubscriptionSymbol.cpp:35
virtual std::string toString() const
Returns string representation of this indexed event subscription symbol.
Definition IndexedEventSubscriptionSymbol.cpp:64
void setUnderlyingPrice(double underlyingPrice) noexcept
Changes underlying price at the time of this option sale event.
Definition OptionSale.cpp:503
bool isValidTick() const noexcept
Returns whether this event represents a valid intraday tick.
Definition OptionSale.cpp:459
void setExchangeSaleConditions(const StringLike &exchangeSaleConditions) noexcept
Changes sale conditions provided for this event by data feed.
Definition OptionSale.cpp:390
void setAggressorSide(const Side &side) noexcept
Changes aggressor side of this option sale event.
Definition OptionSale.cpp:421
bool isSpreadLeg() const noexcept
Returns whether this event represents a spread leg.
Definition OptionSale.cpp:431
std::string getExchangeCodeString() const noexcept
Returns exchange code of this option sale as UTF8 string.
Definition OptionSale.cpp:296
void setEventFlags(std::int32_t eventFlags) noexcept override
Changes transactional event flags.
Definition OptionSale.cpp:177
OptionSale & withAskPrice(double askPrice) noexcept
Changes the current ask price on the market when this option sale event had occurred.
Definition OptionSale.cpp:372
std::int64_t getTimeSequence() const noexcept
Returns time and sequence of this event packaged into a single long value.
Definition OptionSale.cpp:211
static constexpr std::uint32_t MAX_SEQUENCE
Maximum allowed sequence value.
Definition OptionSale.hpp:102
void setIndex(std::int64_t index) override
Changes the unique per-symbol index of this event.
Definition OptionSale.cpp:201
OptionSale & withTimeSequence(std::int64_t timeSequence) noexcept
Changes time and sequence of this event.
Definition OptionSale.cpp:219
void setTimeSequence(std::int64_t timeSequence) noexcept
Changes time and sequence of this event.
Definition OptionSale.cpp:215
const IndexedEventSource & getSource() const &noexcept override
Returns the source of this event.
Definition OptionSale.cpp:165
OptionSale & withValidTick(bool validTick) noexcept
Changes whether this event represents a valid intraday tick.
Definition OptionSale.cpp:467
std::int64_t getTime() const noexcept
Returns time of this event.
Definition OptionSale.cpp:225
OptionSale & withAggressorSide(const Side &side) noexcept
Changes aggressor side of this option sale event.
Definition OptionSale.cpp:425
OptionSale & withTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of this option sale.
Definition OptionSale.cpp:262
OptionSale & withExtendedTradingHours(bool extendedTradingHours) noexcept
Changes whether this event represents an extended trading hours sale.
Definition OptionSale.cpp:453
void setExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this option sale event.
Definition OptionSale.cpp:312
void setPrice(double price) noexcept
Changes price of this option sale event.
Definition OptionSale.cpp:326
bool isExtendedTradingHours() const noexcept
Returns whether this event represents an extended trading hours sale.
Definition OptionSale.cpp:445
void setVolatility(double volatility) noexcept
Changes Black-Scholes implied volatility of the option at the time of this option sale event.
Definition OptionSale.cpp:517
std::string toString() const override
Returns a string representation of the current object.
Definition OptionSale.cpp:563
OptionSale(const StringLike &eventSymbol) noexcept
Creates a new option sale event with the specified event symbol.
Definition OptionSale.cpp:150
double getPrice() const noexcept
Returns price of this option sale event.
Definition OptionSale.cpp:322
OptionSale & withSize(double size) noexcept
Changes the size of this option sale event.
Definition OptionSale.cpp:344
OptionSale & withType(const TimeAndSaleType &type) noexcept
Changes the type of this option sale event.
Definition OptionSale.cpp:481
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition OptionSale.cpp:122
const std::string & getOptionSymbol() const &noexcept
Returns option symbol of this event.
Definition OptionSale.cpp:541
OptionSale & withEventFlags(std::int32_t eventFlags) noexcept
Changes transactional event flags and returns the current option sale.
Definition OptionSale.cpp:181
OptionSale & withDelta(double delta) noexcept
Changes option delta at the time of this option sale event.
Definition OptionSale.cpp:535
OptionSale & withOptionSymbol(const StringLike &optionSymbol) noexcept
Changes option symbol of this event.
Definition OptionSale.cpp:557
std::int16_t getExchangeCode() const noexcept
Returns exchange code of this option sale event.
Definition OptionSale.cpp:292
bool isNew() const noexcept
Returns whether this is a new event (not cancellation or correction).
Definition OptionSale.cpp:487
void setTradeThroughExempt(char tradeThroughExempt)
Changes TradeThroughExempt flag of this option sale event.
Definition OptionSale.cpp:405
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition OptionSale.cpp:142
OptionSale & withPrice(double price) noexcept
Changes price of this option sale event.
Definition OptionSale.cpp:330
static const EventTypeEnum & TYPE
Type identifier and additional information about the current event class.
Definition OptionSale.hpp:95
void setExchangeCode(char exchangeCode) noexcept
Changes exchange code of this option sale event.
Definition OptionSale.cpp:302
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition OptionSale.cpp:109
const std::optional< std::string > & getExchangeSaleConditionsOpt() const &noexcept
Returns sale conditions provided for this event by data feed.
Definition OptionSale.cpp:386
std::int64_t getTimeNanos() const noexcept
Returns time of the original event in nanoseconds.
Definition OptionSale.cpp:243
void setSize(double size) noexcept
Changes the size of this option sale event.
Definition OptionSale.cpp:340
void setSpreadLeg(bool spreadLeg) noexcept
Changes whether this event represents a spread leg.
Definition OptionSale.cpp:435
static Ptr fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition OptionSale.cpp:89
OptionSale & withTime(std::int64_t time) noexcept
Changes the timestamp of the event in milliseconds.
Definition OptionSale.cpp:237
std::int32_t getTimeNanoPart() const noexcept
Returns microseconds and nanoseconds time part of the original event.
Definition OptionSale.cpp:268
void setExtendedTradingHours(bool extendedTradingHours) noexcept
Changes whether this event represents an extended trading hours sale.
Definition OptionSale.cpp:449
OptionSale & withSequence(std::int32_t sequence) noexcept
Changes sequence number of this event.
Definition OptionSale.cpp:286
void setAskPrice(double askPrice) noexcept
Changes the current ask price on the market when this option sale event had occurred.
Definition OptionSale.cpp:368
std::int64_t getIndex() const noexcept override
Returns a unique per-symbol index of this event.
Definition OptionSale.cpp:197
void setValidTick(bool validTick) noexcept
Changes whether this event represents a valid intraday tick.
Definition OptionSale.cpp:463
OptionSale & withVolatility(double volatility) noexcept
Changes Black-Scholes implied volatility of the option at the time of this option sale event.
Definition OptionSale.cpp:521
OptionSale & withBidPrice(double bidPrice) noexcept
Changes the current bid price on the market when this option sale event had occurred.
Definition OptionSale.cpp:358
const TimeAndSaleType & getType() const &noexcept
Returns the type of this option sale event.
Definition OptionSale.cpp:473
OptionSale & withEventSymbol(const StringLike &eventSymbol) noexcept
Changes an event's symbol and returns the current option sale.
Definition OptionSale.cpp:153
std::int32_t getSequence() const noexcept
Returns the sequence number of this event to distinguish events that have the same time.
Definition OptionSale.cpp:272
void setBidPrice(double bidPrice) noexcept
Changes the current bid price on the market when this option sale event had occurred.
Definition OptionSale.cpp:354
void setType(const TimeAndSaleType &type) noexcept
Changes the type of this option sale event.
Definition OptionSale.cpp:477
OptionSale & withEventTime(std::int64_t eventTime) noexcept
Changes event's creation time and returns the current option sale.
Definition OptionSale.cpp:159
const std::optional< std::string > & getOptionSymbolOpt() const &noexcept
Returns option symbol of this event.
Definition OptionSale.cpp:549
OptionSale & withTimeNanos(std::int64_t timeNanos) noexcept
Changes the time of this option sale and returns it.
Definition OptionSale.cpp:252
void setSequence(std::int32_t sequence)
Changes sequence number of this event.
Definition OptionSale.cpp:276
void setDelta(double delta) noexcept
Changes option delta at the time of this option sale event.
Definition OptionSale.cpp:531
OptionSale & withUnderlyingPrice(double underlyingPrice) noexcept
Changes underlying price at the time of this option sale event.
Definition OptionSale.cpp:507
OptionSale & withExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this option sale event.
Definition OptionSale.cpp:316
bool isCancel() const noexcept
Returns whether this is a cancellation of a previous event.
Definition OptionSale.cpp:495
void setOptionSymbol(const StringLike &optionSymbol) noexcept
Changes option symbol of this event.
Definition OptionSale.cpp:553
void setTimeNanos(std::int64_t timeNanos) noexcept
Changes time of the original event.
Definition OptionSale.cpp:247
OptionSale & withExchangeCode(char exchangeCode) noexcept
Changes exchange code of this option sale event.
Definition OptionSale.cpp:306
const Side & getAggressorSide() const &noexcept
Returns the aggressor side of this option sale event.
Definition OptionSale.cpp:417
std::int32_t getEventFlags() const noexcept override
Returns transactional event flags.
Definition OptionSale.cpp:169
OptionSale() noexcept=default
Creates new option sale event with default values.
const std::string & getExchangeSaleConditions() const &noexcept
Returns sale conditions provided for this event by data feed.
Definition OptionSale.cpp:378
char getTradeThroughExempt() const noexcept
Returns TradeThroughExempt flag of this option sale event.
Definition OptionSale.cpp:400
OptionSale & withTradeThroughExempt(char tradeThroughExempt)
Changes TradeThroughExempt flag of this option sale event.
Definition OptionSale.cpp:411
double getAskPrice() const noexcept
Returns the current ask price on the market when this option sale event had occurred.
Definition OptionSale.cpp:364
EventFlagsMask getEventFlagsMask() const noexcept override
Returns transactional event flags.
Definition OptionSale.cpp:173
double getVolatility() const noexcept
Returns Black-Scholes implied volatility of the option at the time of this option sale event.
Definition OptionSale.cpp:513
void setTime(std::int64_t time) noexcept
Changes time of this event.
Definition OptionSale.cpp:230
bool isCorrection() const noexcept
Returns whether this is a correction of a previous event.
Definition OptionSale.cpp:491
double getBidPrice() const noexcept
Returns the current bid price on the market when this option sale event had occurred.
Definition OptionSale.cpp:350
OptionSale & withEventFlags(const EventFlagsMask &eventFlags) noexcept
Changes transactional event flags and returns the current option sale.
Definition OptionSale.cpp:191
double getSize() const noexcept
Returns the size of this option sale event.
Definition OptionSale.cpp:336
void setTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of the original event.
Definition OptionSale.cpp:258
void setEventFlags(const EventFlagsMask &eventFlags) noexcept override
Changes transactional event flags.
Definition OptionSale.cpp:187
double getUnderlyingPrice() const noexcept
Returns the underlying price at the time of this option sale event.
Definition OptionSale.cpp:499
OptionSale & withExchangeSaleConditions(const StringLike &exchangeSaleConditions) noexcept
Changes sale conditions provided for this event by data feed.
Definition OptionSale.cpp:394
OptionSale & withSpreadLeg(bool spreadLeg) noexcept
Changes whether this event represents a spread leg.
Definition OptionSale.cpp:439
OptionSale & withIndex(std::int64_t index) noexcept
Changes unique per-symbol index of this event.
Definition OptionSale.cpp:205
double getDelta() const noexcept
Return option delta at the time of this option sale event.
Definition OptionSale.cpp:527
Base class for common fields of Order, AnalyticOrder and SpreadOrder events.
Definition OrderBase.hpp:77
void setPrice(double price) noexcept
Changes price of this order.
Definition OrderBase.hpp:468
const OrderSource & getSource() const &noexcept override
Returns source of this event.
Definition OrderBase.hpp:187
void setTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of this order.
Definition OrderBase.hpp:310
void setSize(double size) noexcept
Changes size of this order.
Definition OrderBase.hpp:486
double getTradePrice() const noexcept
Returns trade price for events containing trade-related action.
Definition OrderBase.hpp:560
double getSize() const noexcept
Returns size of this order.
Definition OrderBase.hpp:477
void setIndex(std::int64_t index) override
Changes the unique per-symbol index of this order.
Definition OrderBase.hpp:242
std::int64_t getTime() const noexcept
Returns time of this order.
Definition OrderBase.hpp:287
std::int64_t getIndex() const noexcept override
Returns a unique per-symbol index of this order.
Definition OrderBase.hpp:255
std::int64_t getAuxOrderId() const noexcept
Returns auxiliary order ID if available:
Definition OrderBase.hpp:441
void setExchangeCode(char exchangeCode)
Changes exchange code of this order.
Definition OrderBase.hpp:620
void setSource(const OrderSource &source) noexcept
Changes source of this event.
Definition OrderBase.hpp:203
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition OrderBase.cpp:67
std::int64_t getTimeNanos() const noexcept
Returns time of this order in nanoseconds.
Definition OrderBase.hpp:356
void setOrderSide(const Side &side) noexcept
Changes side of this order.
Definition OrderBase.hpp:650
void setSequence(std::int32_t sequence)
Changes sequence number of this order.
Definition OrderBase.hpp:342
double getExecutedSize() const noexcept
Returns executed size of this order.
Definition OrderBase.hpp:504
void setOrderId(std::int64_t orderId) noexcept
Changes order ID.
Definition OrderBase.hpp:425
void setTradeId(std::int64_t tradeId) noexcept
Changes trade ID.
Definition OrderBase.hpp:550
void setTime(std::int64_t time) noexcept
Changes time of this order.
Definition OrderBase.hpp:298
std::string baseFieldsToString() const
Returns string representation of this order event's fields.
Definition OrderBase.cpp:75
void setTimeSequence(std::int64_t timeSequence) noexcept
Changes time and sequence of this order.
Definition OrderBase.hpp:277
const Side & getOrderSide() const &noexcept
Returns side of this order.
Definition OrderBase.hpp:641
void setScope(const Scope &scope) noexcept
Changes scope of this order.
Definition OrderBase.hpp:668
void setEventFlags(const EventFlagsMask &eventFlags) noexcept override
Changes transactional event flags.
Definition OrderBase.hpp:230
void setExecutedSize(double executedSize) noexcept
Changes executed size of this order.
Definition OrderBase.hpp:513
void setTimeNanos(std::int64_t timeNanos) noexcept
Changes time of this order.
Definition OrderBase.hpp:366
std::int64_t getCount() const noexcept
Returns the number of individual orders in this aggregate order.
Definition OrderBase.hpp:522
std::int16_t getExchangeCode() const noexcept
Returns exchange code of this order.
Definition OrderBase.hpp:597
std::string getExchangeCodeString() const noexcept
Returns exchange code of this order as UTF8 string.
Definition OrderBase.hpp:607
double getTradeSize() const noexcept
Returns trade size for events containing trade-related action.
Definition OrderBase.hpp:579
std::int32_t getSequence() const noexcept
Returns sequence number of this order to distinguish orders that have the same time.
Definition OrderBase.hpp:330
void setExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this order.
Definition OrderBase.hpp:632
std::int64_t getOrderId() const noexcept
Returns order ID if available.
Definition OrderBase.hpp:416
std::int32_t getTimeNanoPart() const noexcept
Returns microseconds and nanoseconds time part of this order.
Definition OrderBase.hpp:319
void setActionTime(std::int64_t actionTime) noexcept
Changes time of the last action.
Definition OrderBase.hpp:405
const OrderAction & getAction() const &noexcept
Returns order action if available, otherwise - OrderAction::UNDEFINED.
Definition OrderBase.hpp:377
void setTradeSize(double tradeSize) noexcept
Changes trade size.
Definition OrderBase.hpp:588
EventFlagsMask getEventFlagsMask() const noexcept override
Returns transactional event flags.
Definition OrderBase.hpp:220
double getPrice() const noexcept
Returns price of this order.
Definition OrderBase.hpp:459
static constexpr std::uint32_t MAX_SEQUENCE
Maximum allowed sequence value.
Definition OrderBase.hpp:165
void setEventFlags(std::int32_t eventFlags) noexcept override
Changes transactional event flags.
Definition OrderBase.hpp:225
void setAuxOrderId(std::int64_t auxOrderId) noexcept
Changes auxiliary order ID.
Definition OrderBase.hpp:450
const Scope & getScope() const &noexcept
Returns scope of this order.
Definition OrderBase.hpp:659
void setAction(const OrderAction &action) noexcept
Changes action of this order.
Definition OrderBase.hpp:386
std::int32_t getEventFlags() const noexcept override
Returns transactional event flags.
Definition OrderBase.hpp:215
void setCount(std::int64_t count) noexcept
Changes the number of individual orders in this aggregate order.
Definition OrderBase.hpp:531
OrderBase() noexcept=default
Creates new order event with default values.
std::int64_t getActionTime() const noexcept
Returns time of the last action.
Definition OrderBase.hpp:396
bool hasSize() const noexcept
Returns true if this order has some size (sizeAsDouble is neither 0 nor NaN).
Definition OrderBase.hpp:495
std::int64_t getTradeId() const noexcept
Returns trade (order execution) ID for events containing trade-related action.
Definition OrderBase.hpp:541
std::int64_t getTimeSequence() const noexcept
Returns time and sequence of this order packaged into a single long value.
Definition OrderBase.hpp:265
OrderBase(const StringLike &eventSymbol) noexcept
Creates a new order event with the specified event symbol.
Definition OrderBase.hpp:178
void setTradePrice(double tradePrice) noexcept
Changes trade price.
Definition OrderBase.hpp:569
static const OrderSource GLBX
CME Globex.
Definition OrderSource.hpp:352
static const OrderSource smfe
Small Exchange.
Definition OrderSource.hpp:416
static const OrderSource bzx
Bats BZX Exchange.
Definition OrderSource.hpp:280
static const OrderSource DEX
Direct-Edge EDGX Exchange.
Definition OrderSource.hpp:247
static const OrderSource NTV
NASDAQ Total View.
Definition OrderSource.hpp:183
static const OrderSource AGGREGATE_ASK
Ask side of an aggregate order book (futures depth and NASDAQ Level II).
Definition OrderSource.hpp:136
static const OrderSource & valueOf(std::int32_t sourceId)
Returns order source for the specified source identifier.
Definition OrderSource.cpp:197
static const OrderSource ESPD
NASDAQ eSpeed.
Definition OrderSource.hpp:207
static const OrderSource CFE
CBOE Futures Exchange.
Definition OrderSource.hpp:392
static const OrderSource ntv
NASDAQ Total View.
Definition OrderSource.hpp:191
static const OrderSource ICE
Intercontinental Exchange.
Definition OrderSource.hpp:223
static const OrderSource BZX
Bats BZX Exchange.
Definition OrderSource.hpp:272
static const OrderSource C2OX
CBOE Options C2 Exchange.
Definition OrderSource.hpp:400
static const OrderSource AGGREGATE
Aggregate order book (futures depth and NASDAQ Level II).
Definition OrderSource.hpp:168
static const OrderSource REGIONAL_ASK
Ask side of a regional Quote.
Definition OrderSource.hpp:120
static const OrderSource REGIONAL_BID
Bid side of a regional Quote.
Definition OrderSource.hpp:111
static const OrderSource igc
IG CFDs Gate.
Definition OrderSource.hpp:512
static const OrderSource ABE
ABE (abe.io) exchange.
Definition OrderSource.hpp:336
static const OrderSource CEUX
Bats Europe DXE Exchange.
Definition OrderSource.hpp:304
static const OrderSource OCEA
Blue Ocean Technologies Alternative Trading System.
Definition OrderSource.hpp:448
static const OrderSource AGGREGATE_BID
Bid side of an aggregate order book (futures depth and NASDAQ Level II).
Definition OrderSource.hpp:128
static const OrderSource BXTR
Bats Europe TRF.
Definition OrderSource.hpp:312
static const OrderSource & valueOf(const StringLike &name)
Returns order source for the specified source name.
Definition OrderSource.cpp:211
static const OrderSource dex
Direct-Edge EDGX Exchange.
Definition OrderSource.hpp:256
static const OrderSource cedx
Cboe European Derivatives.
Definition OrderSource.hpp:496
static const OrderSource COMPOSITE
Composite Quote.
Definition OrderSource.hpp:147
static const OrderSource COMPOSITE_ASK
Ask side of a composite Quote.
Definition OrderSource.hpp:102
static const OrderSource REGIONAL
Regional Quote.
Definition OrderSource.hpp:158
static const OrderSource XNFI
NASDAQ Fixed Income.
Definition OrderSource.hpp:215
static const OrderSource iex
Investors exchange.
Definition OrderSource.hpp:424
static const OrderSource xeur
Eurex Exchange.
Definition OrderSource.hpp:384
static const OrderSource CEDX
Cboe European Derivatives.
Definition OrderSource.hpp:488
static const OrderSource ISE
International Securities Exchange.
Definition OrderSource.hpp:231
static const OrderSource DEA
Direct-Edge EDGA Exchange.
Definition OrderSource.hpp:239
static const OrderSource glbx
CME Globex.
Definition OrderSource.hpp:360
static const OrderSource ocea
Blue Ocean Technologies Alternative Trading System.
Definition OrderSource.hpp:455
static const OrderSource EDX
EDX Exchange.
Definition OrderSource.hpp:520
static const OrderSource BI20
Borsa Istanbul Exchange.
Definition OrderSource.hpp:328
static const OrderSource NUAM
Nuam Exchange Gate.
Definition OrderSource.hpp:536
static const OrderSource BYX
Bats BYX Exchange.
Definition OrderSource.hpp:264
static const OrderSource IGC
IG CFDs Gate.
Definition OrderSource.hpp:504
static const OrderSource FAIR
FAIR (FairX) exchange.
Definition OrderSource.hpp:344
static const OrderSource BATE
Bats Europe BXE Exchange.
Definition OrderSource.hpp:288
static const OrderSource pink
Pink Sheets.
Definition OrderSource.hpp:464
static const OrderSource DEFAULT
Default source for publishing custom order books.
Definition OrderSource.hpp:175
static const OrderSource NFX
NASDAQ Futures Exchange.
Definition OrderSource.hpp:199
static const OrderSource memx
Members Exchange.
Definition OrderSource.hpp:440
static bool isSpecialSourceId(std::int32_t sourceId) noexcept
Determines whether the specified source identifier refers to a special order source.
Definition OrderSource.cpp:193
static const OrderSource IST
Borsa Istanbul Exchange.
Definition OrderSource.hpp:320
static const OrderSource edx
EDX Exchange.
Definition OrderSource.hpp:528
static const OrderSource ARCA
NYSE Arca traded securities.
Definition OrderSource.hpp:472
static const OrderSource CHIX
Bats Europe CXE Exchange.
Definition OrderSource.hpp:296
static const OrderSource ERIS
Eris Exchange group of companies.
Definition OrderSource.hpp:368
static const OrderSource nuam
Nuam Exchange Gate.
Definition OrderSource.hpp:544
static const OrderSource XEUR
Eurex Exchange.
Definition OrderSource.hpp:376
static const OrderSource MEMX
Members Exchange.
Definition OrderSource.hpp:432
static const OrderSource COMPOSITE_BID
Bid side of a composite Quote.
Definition OrderSource.hpp:93
static const OrderSource arca
NYSE Arca traded securities.
Definition OrderSource.hpp:480
static const OrderSource SMFE
Small Exchange.
Definition OrderSource.hpp:408
Order event is a snapshot for a full available market depth for a symbol.
Definition Order.hpp:93
Order & withTradeSize(double tradeSize) noexcept
Changes trade size.
Definition Order.cpp:235
Order(const StringLike &eventSymbol) noexcept
Creates a new order event with the specified event symbol.
Definition Order.cpp:112
Order & withTimeNanos(std::int64_t timeNanos) noexcept
Changes time of this order and returns it.
Definition Order.cpp:169
Order & withTime(std::int64_t time) noexcept
Changes time of this order and returns it.
Definition Order.cpp:151
Order & withSequence(std::int32_t sequence) noexcept
Changes sequence number of this order.
Definition Order.cpp:163
Order() noexcept=default
Creates new order event with default values.
Order & withOrderId(std::int64_t orderId) noexcept
Changes order ID.
Definition Order.cpp:187
Order & withSource(const OrderSource &source) noexcept
Changes an event's source and returns the current order.
Definition Order.cpp:127
Order & withExchangeCode(char exchangeCode) noexcept
Changes exchange code of this order.
Definition Order.cpp:241
Order & withMarketMaker(const StringLike &marketMaker) noexcept
Changes market maker or other aggregate identifier of this order.
Definition Order.cpp:281
const std::string & getMarketMaker() const &noexcept
Returns market maker or other aggregate identifier of this order.
Definition Order.cpp:265
Order & withEventFlags(std::int32_t eventFlags) noexcept
Changes transactional event flags and returns the current order.
Definition Order.cpp:133
Order & withScope(const Scope &scope) noexcept
Changes scope of this order.
Definition Order.cpp:259
Order & withExecutedSize(double executedSize) noexcept
Changes executed size of this order.
Definition Order.cpp:211
Order & withEventFlags(const EventFlagsMask &eventFlags) noexcept
Changes transactional event flags and returns the current order.
Definition Order.cpp:139
Order & withAction(const OrderAction &action) noexcept
Changes the action of this order and returns it.
Definition Order.cpp:175
Order & withTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of this order.
Definition Order.cpp:157
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition Order.cpp:104
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition Order.cpp:73
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition Order.cpp:86
Order & withSize(double size) noexcept
Changes size of this order.
Definition Order.cpp:205
Order & withPrice(double price) noexcept
Changes price of this order.
Definition Order.cpp:199
std::string toString() const override
Returns a string representation of the current object.
Definition Order.cpp:287
Order & withAuxOrderId(std::int64_t auxOrderId) noexcept
Changes auxiliary order ID.
Definition Order.cpp:193
static Ptr fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition Order.cpp:53
Order & withIndex(std::int64_t index) noexcept
Changes the unique per-symbol index of this order and returns it.
Definition Order.cpp:145
Order & withOrderSide(const Side &side) noexcept
Changes side of this order.
Definition Order.cpp:253
Order & withEventTime(std::int64_t eventTime) noexcept
Changes the event's creation time and returns the current order.
Definition Order.cpp:121
static const EventTypeEnum & TYPE
Type identifier and additional information about the current event class.
Definition Order.hpp:115
virtual Order & withEventSymbol(const StringLike &eventSymbol) noexcept
Changes an event's symbol and returns the current order.
Definition Order.cpp:115
Order & withExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this order.
Definition Order.cpp:247
void setMarketMaker(const StringLike &marketMaker) noexcept
Changes market maker or other aggregate identifier of this order.
Definition Order.cpp:277
Order & withCount(std::int64_t count) noexcept
Changes the number of individual orders in this aggregate order.
Definition Order.cpp:217
Order & withTradeId(std::int64_t tradeId) noexcept
Changes trade ID.
Definition Order.cpp:223
Order & withTradePrice(double tradePrice) noexcept
Changes trade price.
Definition Order.cpp:229
Order & withActionTime(std::int64_t actionTime) noexcept
Changes time of the last action and returns the current order.
Definition Order.cpp:181
const std::optional< std::string > & getMarketMakerOpt() const &noexcept
Returns market maker or other aggregate identifier of this order.
Definition Order.cpp:273
OtcMarketsOrder & withPrice(double price) noexcept
Changes price of this OTC Markets order.
Definition OtcMarketsOrder.hpp:355
bool isSaturated() const noexcept
Returns whether this event should NOT be considered for the inside price.
Definition OtcMarketsOrder.hpp:622
OtcMarketsOrder & withAuxOrderId(std::int64_t auxOrderId) noexcept
Changes auxiliary order ID.
Definition OtcMarketsOrder.hpp:344
OtcMarketsOrder & withAutoExecution(bool autoExecution) noexcept
Changes whether this event is in 'AutoEx' mode.
Definition OtcMarketsOrder.hpp:678
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition OtcMarketsOrder.cpp:84
OtcMarketsOrder & withExecutedSize(double executedSize) noexcept
Changes executed size of this OTC Markets order.
Definition OtcMarketsOrder.hpp:377
void setNmsConditional(bool nmsConditional) noexcept
Changes whether this event represents a NMS conditional.
Definition OtcMarketsOrder.hpp:701
OtcMarketsOrder & withEventSymbol(const StringLike &eventSymbol) noexcept override
Changes the event's symbol and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:199
const OtcMarketsPriceType & getOtcMarketsPriceType() const &noexcept
Returns OTC Markets price type of this OTC Markets order events.
Definition OtcMarketsOrder.hpp:589
bool isNmsConditional() const noexcept
Returns whether this event represents a NMS conditional.
Definition OtcMarketsOrder.hpp:692
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition OtcMarketsOrder.cpp:103
OtcMarketsOrder() noexcept=default
Creates new OTC Markets order event with default values.
OtcMarketsOrder & withAction(const OrderAction &action) noexcept
Changes action of this OTC Markets order and returns it.
Definition OtcMarketsOrder.hpp:312
void setUnsolicited(bool unsolicited) noexcept
Changes whether this event is unsolicited.
Definition OtcMarketsOrder.hpp:565
static const EventTypeEnum & TYPE
Type identifier and additional information about the current event class.
Definition OtcMarketsOrder.hpp:149
std::string toString() const override
Returns a string representation of the current object.
Definition OtcMarketsOrder.cpp:64
OtcMarketsOrder & withSource(const OrderSource &source) noexcept
Changes event's source and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:223
OtcMarketsOrder & withCount(std::int64_t count) noexcept
Changes number of individual orders in this aggregate order.
Definition OtcMarketsOrder.hpp:388
void setQuoteAccessPayment(std::int32_t quoteAccessPayment) noexcept
Changes Quote Access Payment (QAP) of this OTC Markets order.
Definition OtcMarketsOrder.hpp:502
OtcMarketsOrder & withMarketMaker(const StringLike &marketMaker) noexcept
Changes market maker or other aggregate identifier of this OTC Markets order.
Definition OtcMarketsOrder.hpp:478
static Ptr fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition OtcMarketsOrder.cpp:45
OtcMarketsOrder & withEventFlags(const EventFlagsMask &eventFlags) noexcept
Changes transactional event flags and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:245
void setSaturated(bool saturated) noexcept
Changes whether this event should NOT be considered for the inside price.
Definition OtcMarketsOrder.hpp:631
void setOtcMarketsPriceType(const OtcMarketsPriceType &otcPriceType) noexcept
Changes OTC Markets price type of this OTC Markets order events.
Definition OtcMarketsOrder.hpp:599
OtcMarketsOrder & withSize(double size) noexcept
Changes size of this OTC Markets order.
Definition OtcMarketsOrder.hpp:366
OtcMarketsOrder & withScope(const Scope &scope) noexcept
Changes scope of this OTC Markets order.
Definition OtcMarketsOrder.hpp:465
OtcMarketsOrder & withTradeSize(double tradeSize) noexcept
Changes trade size.
Definition OtcMarketsOrder.hpp:421
OtcMarketsOrder & withQuoteAccessPayment(std::int32_t quoteAccessPayment) noexcept
Changes Quote Access Payment (QAP) and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:512
OtcMarketsOrder & withOrderId(std::int64_t orderId) noexcept
Changes order ID.
Definition OtcMarketsOrder.hpp:333
OtcMarketsOrder(const StringLike &eventSymbol) noexcept
Creates new OTC Markets order event with the specified event symbol.
Definition OtcMarketsOrder.hpp:188
std::int32_t getQuoteAccessPayment() const noexcept
Returns Quote Access Payment (QAP) of this OTC Markets order.
Definition OtcMarketsOrder.hpp:493
OtcMarketsOrder & withUnsolicited(bool unsolicited) noexcept
Changes whether this event is unsolicited.
Definition OtcMarketsOrder.hpp:578
OtcMarketsOrder & withExchangeCode(char exchangeCode) noexcept
Changes exchange code of this OTC Markets order.
Definition OtcMarketsOrder.hpp:432
OtcMarketsOrder & withOrderSide(const Side &side) noexcept
Changes side of this OTC Markets order.
Definition OtcMarketsOrder.hpp:454
void setOpen(bool open) noexcept
Changes whether this event is available for business within the operating hours of the OTC Link syste...
Definition OtcMarketsOrder.hpp:533
bool isAutoExecution() const noexcept
Returns whether this event is in 'AutoEx' mode.
Definition OtcMarketsOrder.hpp:656
OtcMarketsOrder & withOtcMarketsPriceType(const OtcMarketsPriceType &otcPriceType) noexcept
Changes OTC Markets price type of this OTC Markets order events.
Definition OtcMarketsOrder.hpp:611
OtcMarketsOrder & withSaturated(bool saturated) noexcept
Changes whether this event should NOT be considered for the inside price.
Definition OtcMarketsOrder.hpp:644
OtcMarketsOrder & withTradePrice(double tradePrice) noexcept
Changes trade price.
Definition OtcMarketsOrder.hpp:410
OtcMarketsOrder & withActionTime(std::int64_t actionTime) noexcept
Changes time of the last action and returns current OTC Markets order.
Definition OtcMarketsOrder.hpp:322
OtcMarketsOrder & withExchangeCode(std::int16_t exchangeCode) noexcept
Changes exchange code of this OTC Markets order.
Definition OtcMarketsOrder.hpp:443
void setAutoExecution(bool autoExecution) noexcept
Changes whether this event is in 'AutoEx' mode.
Definition OtcMarketsOrder.hpp:665
bool isUnsolicited() const noexcept
Returns whether this event is unsolicited.
Definition OtcMarketsOrder.hpp:556
OtcMarketsOrder & withEventTime(std::int64_t eventTime) noexcept
Changes event's creation time and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:210
OtcMarketsOrder & withTimeNanos(std::int64_t timeNanos) noexcept
Changes time of this OTC Markets order and returns it.
Definition OtcMarketsOrder.hpp:302
bool isOpen() const noexcept
Returns whether this event is available for business within the operating hours of the OTC Link syste...
Definition OtcMarketsOrder.hpp:524
OtcMarketsOrder & withTimeNanoPart(std::int32_t timeNanoPart) noexcept
Changes microseconds and nanoseconds time part of this OTC Markets order.
Definition OtcMarketsOrder.hpp:279
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition OtcMarketsOrder.cpp:71
OtcMarketsOrder & withSequence(std::int32_t sequence) noexcept
Changes sequence number of this OTC Markets order.
Definition OtcMarketsOrder.hpp:291
OtcMarketsOrder & withNmsConditional(bool nmsConditional) noexcept
Changes whether this event represents a NMS conditional.
Definition OtcMarketsOrder.hpp:714
OtcMarketsOrder & withIndex(std::int64_t index) noexcept
Changes unique per-symbol index of this OTC Markets order and returns it.
Definition OtcMarketsOrder.hpp:257
OtcMarketsOrder & withEventFlags(std::int32_t eventFlags) noexcept
Changes transactional event flags and returns the current OTC Markets order.
Definition OtcMarketsOrder.hpp:234
OtcMarketsOrder & withOpen(bool open) noexcept
Changes whether this event is available for business within the operating hours of the OTC Link syste...
Definition OtcMarketsOrder.hpp:545
OtcMarketsOrder & withTime(std::int64_t time) noexcept
Changes time of this OTC Markets order and returns it.
Definition OtcMarketsOrder.hpp:268
OtcMarketsOrder & withTradeId(std::int64_t tradeId) noexcept
Changes trade ID.
Definition OtcMarketsOrder.hpp:399
TimeSeriesSubscriptionSymbol(const SymbolWrapper &eventSymbol, std::int64_t fromTime)
Creates a time-series subscription symbol with a specified event symbol and subscription time.
void * toGraal() const override
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition TimeSeriesSubscriptionSymbol.cpp:19
std::string toString() const override
Returns string representation of this time-series subscription symbol.
Definition TimeSeriesSubscriptionSymbol.cpp:66
std::int64_t getFromTime() const
Returns the subscription time.
Definition TimeSeriesSubscriptionSymbol.cpp:15
static TimeSeriesSubscriptionSymbol fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure (rec...
Definition TimeSeriesSubscriptionSymbol.cpp:50
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition TimeSeriesSubscriptionSymbol.cpp:33
The AuthToken class represents an authorization token and encapsulates information about the authoriz...
Definition AuthToken.hpp:30
std::string getScheme() const
Returns the authentication scheme.
Definition AuthToken.cpp:79
std::string getPassword() const
Returns the password or dxfcpp::String::NUL (std::string{"<null>"}) if it is not known or applicable.
Definition AuthToken.cpp:71
static AuthToken createBasicToken(const StringLike &user, const StringLike &password)
Constructs an AuthToken with the specified username and password per RFC2617.
Definition AuthToken.cpp:23
static AuthToken createBasicTokenOrNull(const StringLike &user, const StringLike &password)
Constructs an AuthToken with the specified username and password per RFC2617.
Definition AuthToken.cpp:27
std::string getHttpAuthorization() const
Returns the HTTP authorization header value.
Definition AuthToken.cpp:55
static AuthToken createBearerToken(const StringLike &token)
Constructs an AuthToken with the specified bearer token per RFC6750.
Definition AuthToken.cpp:37
static AuthToken createCustomToken(const StringLike &scheme, const StringLike &value)
Constructs an AuthToken with a custom scheme and value.
Definition AuthToken.cpp:51
std::string getValue() const
Returns the access token for RFC6750 or the Base64-encoded "username:password" for RFC2617.
Definition AuthToken.cpp:87
static AuthToken createBearerTokenOrNull(const StringLike &token)
Constructs an AuthToken with the specified bearer token per RFC6750.
Definition AuthToken.cpp:41
std::string getUser() const
Returns the username or dxfcpp::String::NUL (std::string{"<null>"}) if it is not known or applicable.
Definition AuthToken.cpp:63
static AuthToken valueOf(const StringLike &string)
Constructs an AuthToken from the specified string.
Definition AuthToken.cpp:15
static AuthToken createBasicToken(const StringLike &userPassword)
Constructs an AuthToken with the specified username and password per RFC2617.
Definition AuthToken.cpp:19
Candle alignment attribute of CandleSymbol defines how candles are aligned with respect to time.
Definition CandleAlignment.hpp:32
static const CandleAlignment DEFAULT
Default alignment is CandleAlignment::MIDNIGHT.
Definition CandleAlignment.hpp:46
static const CandleAlignment MIDNIGHT
Align candles at midnight.
Definition CandleAlignment.hpp:14
static const CandleAlignment SESSION
Align candles on trading sessions.
Definition CandleAlignment.hpp:15
static std::reference_wrapper< const CandleAlignment > getAttributeForSymbol(const StringLike &symbol)
Returns candle alignment of the given candle symbol string.
Definition CandleAlignment.cpp:60
std::string toString() const
Returns string representation of this candle alignment.
Definition CandleAlignment.cpp:38
static std::reference_wrapper< const CandleAlignment > parse(const StringLike &s)
Parses string representation of candle alignment into an object.
Definition CandleAlignment.cpp:46
static const std::string ATTRIBUTE_KEY
The attribute key that is used to store the value of CandleAlignment in a symbol string using methods...
Definition CandleAlignment.hpp:17
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this candle alignment set.
Definition CandleAlignment.cpp:33
static std::string normalizeAttributeForSymbol(const StringLike &symbol)
Returns candle symbol string with the normalized representation of the candle alignment attribute.
Definition CandleAlignment.cpp:66
Exchange attribute of CandleSymbol defines the exchange identifier where data is taken from to build ...
Definition CandleExchange.hpp:29
static const CandleExchange COMPOSITE
Composite exchange where data is taken from all exchanges.
Definition CandleExchange.hpp:8
char getExchangeCode() const noexcept
Returns exchange code.
Definition CandleExchange.cpp:15
static const CandleExchange DEFAULT
Default exchange is CandleExchange::COMPOSITE.
Definition CandleExchange.hpp:38
std::string toString() const
Returns string representation of this exchange.
Definition CandleExchange.cpp:23
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this exchange set.
Definition CandleExchange.cpp:19
static CandleExchange valueOf(char exchangeCode) noexcept
Returns an exchange attribute object that corresponds to the specified exchange code character.
Definition CandleExchange.cpp:31
static CandleExchange getAttributeForSymbol(const StringLike &symbol)
Returns exchange an attribute object of the given candle symbol string.
Definition CandleExchange.cpp:35
Period attribute of CandleSymbol defines an aggregation period of the candles.
Definition CandlePeriod.hpp:34
double getValue() const noexcept
Returns aggregation period value.
Definition CandlePeriod.cpp:63
static const std::string ATTRIBUTE_KEY
The attribute key that is used to store the value of CandlePeriod in a symbol string using methods of...
Definition CandlePeriod.hpp:49
static const CandlePeriod TICK
Tick aggregation where each candle represents an individual tick.
Definition CandlePeriod.hpp:46
static std::string normalizeAttributeForSymbol(const StringLike &symbol)
Returns candle symbol string with the normalized representation of the candle period attribute.
Definition CandlePeriod.cpp:132
static CandlePeriod valueOf(double value, const CandleType &type) noexcept
Returns candle period with the given value and type.
Definition CandlePeriod.cpp:114
static const CandlePeriod DEFAULT
The default period is CandlePeriod::TICK.
Definition CandlePeriod.hpp:48
std::int64_t getPeriodIntervalMillis() const noexcept
Returns an aggregation period in milliseconds as closely as possible.
Definition CandlePeriod.cpp:54
static const CandlePeriod DAY
Day aggregation where each candle represents a day.
Definition CandlePeriod.hpp:47
const CandleType & getType() const &noexcept
Returns aggregation period type.
Definition CandlePeriod.cpp:67
const std::string & toString() const &
Returns string representation of this aggregation period.
Definition CandlePeriod.cpp:71
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this aggregation period set.
Definition CandlePeriod.cpp:58
static CandlePeriod getAttributeForSymbol(const StringLike &symbol) noexcept
Returns candle period of the given candle symbol string.
Definition CandlePeriod.cpp:126
static CandlePeriod parse(const StringLike &s)
Parses string representation of an aggregation period into an object.
Definition CandlePeriod.cpp:86
Candle price level attribute of CandleSymbol defines how candles shall be aggregated in respect to a ...
Definition CandlePriceLevel.hpp:40
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this candle price level set.
Definition CandlePriceLevel.cpp:31
static CandlePriceLevel valueOf(double value)
Returns candle price level with the given value.
Definition CandlePriceLevel.cpp:40
static CandlePriceLevel parse(const StringLike &s)
Parses string representation of candle price level into an object.
Definition CandlePriceLevel.cpp:36
std::string toString() const
Returns string representation of this price level.
Definition CandlePriceLevel.cpp:19
double getValue() const noexcept
Returns price level value.
Definition CandlePriceLevel.cpp:15
static const std::string ATTRIBUTE_KEY
The attribute key that is used to store the value of CandlePriceLevel in a symbol string using method...
Definition CandlePriceLevel.hpp:10
static std::string normalizeAttributeForSymbol(const StringLike &symbol)
Returns candle symbol string with the normalized representation of the candle price level attribute.
Definition CandlePriceLevel.cpp:54
static CandlePriceLevel getAttributeForSymbol(const StringLike &symbol)
Returns candle price level of the given candle symbol string.
Definition CandlePriceLevel.cpp:48
static const CandlePriceLevel DEFAULT
Default price level corresponds to NaN (std::numeric_limits<double>::quiet_NaN())
Definition CandlePriceLevel.hpp:8
Price type attribute of CandleSymbol defines the price used to build the candles.
Definition CandlePrice.hpp:34
static std::string normalizeAttributeForSymbol(const StringLike &symbol)
Returns candle symbol string with the normalized representation of the candle price type attribute.
Definition CandlePrice.cpp:74
static const CandlePrice BID
Quote bid price.
Definition CandlePrice.hpp:12
static const CandlePrice ASK
Quote ask price.
Definition CandlePrice.hpp:13
static const CandlePrice LAST
Last trading price.
Definition CandlePrice.hpp:11
static const CandlePrice MARK
Market price defined as average between quote bid and ask prices.
Definition CandlePrice.hpp:14
const std::string & toString() const &noexcept
Returns string representation of this candle price type.
Definition CandlePrice.cpp:41
static const CandlePrice DEFAULT
The default price type is CandlePrice::LAST.
Definition CandlePrice.hpp:65
static const CandlePrice SETTLEMENT
Official settlement price that is defined by exchange or last trading price otherwise.
Definition CandlePrice.hpp:15
static std::reference_wrapper< const CandlePrice > getAttributeForSymbol(const StringLike &symbol) noexcept
Returns the candle price type of the given candle symbol string.
Definition CandlePrice.cpp:68
static std::reference_wrapper< const CandlePrice > parse(const StringLike &s)
Parses string representation of a candle price type into an object.
Definition CandlePrice.cpp:49
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this candle price type set.
Definition CandlePrice.cpp:36
static const std::string ATTRIBUTE_KEY
The attribute key that is used to store the value of CandlePrice in a symbol string using methods of ...
Definition CandlePrice.hpp:18
const std::string & toString() const &noexcept
Returns string representation of this candle session attribute.
Definition CandleSession.cpp:76
static const CandleSession REGULAR
Only regular trading session data is used to build candles.
Definition CandleSession.hpp:49
const SessionFilter & getSessionFilter() const &noexcept
Returns a session filter that corresponds to this session attribute.
Definition CandleSession.cpp:67
static std::reference_wrapper< const CandleSession > getAttributeForSymbol(const StringLike &symbol)
Returns candle session attribute of the given candle symbol string.
Definition CandleSession.cpp:103
static const CandleSession ANY
All trading sessions are used to build candles.
Definition CandleSession.hpp:48
static const std::string ATTRIBUTE_KEY
The attribute key that is used to store the value of CandleSession in a symbol string using methods o...
Definition CandleSession.hpp:60
std::string changeAttributeForSymbol(const StringLike &symbol) const override
Returns candle event symbol string with this session attribute set.
Definition CandleSession.cpp:71
static std::reference_wrapper< const CandleSession > parse(const StringLike &s)
Parses string representation of the candle session attribute into an object.
Definition CandleSession.cpp:84
static const CandleSession DEFAULT
The default trading session is CandleSession::ANY.
Definition CandleSession.hpp:51
static std::string normalizeAttributeForSymbol(const StringLike &symbol) noexcept
Returns candle symbol string with the normalized representation of the candle session attribute.
Definition CandleSession.cpp:109
Attribute of the CandleSymbol.
Definition CandleSymbolAttribute.hpp:19
virtual std::string changeAttributeForSymbol(const StringLike &symbol) const =0
Returns candle event symbol string with this attribute set.
Symbol that should be used with DXFeedSubscription class to subscribe for Candle events.
Definition CandleSymbol.hpp:82
const std::optional< CandlePeriod > & getPeriod() const &noexcept
Returns the aggregation period of this symbol.
Definition CandleSymbol.cpp:140
const std::optional< CandlePriceLevel > & getPriceLevel() const &noexcept
Returns the price level attribute of this symbol.
Definition CandleSymbol.cpp:148
const std::optional< CandleExchange > & getExchange() const &noexcept
Returns exchange attribute of this symbol.
Definition CandleSymbol.cpp:128
static CandleSymbol valueOf(const StringLike &symbol, const CandleSymbolAttributeVariant &attribute) noexcept
Converts the given string symbol into the candle symbol object with the specified attribute set.
Definition CandleSymbol.cpp:56
const std::string & getBaseSymbol() const &noexcept
Returns base market symbol without attributes.
Definition CandleSymbol.cpp:124
static CandleSymbol valueOf(const StringLike &symbol, CandleSymbolAttributesCollection &&attributes) noexcept
Converts the given string symbol into the candle symbol object with the specified attributes set.
Definition CandleSymbol.hpp:276
static CandleSymbol valueOf(const StringLike &symbol, std::initializer_list< CandleSymbolAttributeVariant > attributes) noexcept
Converts the given string symbol into the candle symbol object with the specified attributes set (ini...
Definition CandleSymbol.cpp:60
static CandleSymbol valueOf(const StringLike &symbol) noexcept
Converts the given string symbol into the candle symbol object.
Definition CandleSymbol.cpp:52
const std::optional< CandlePrice > & getPrice() const &noexcept
Returns the price type attribute of this symbol.
Definition CandleSymbol.cpp:132
static CandleSymbol valueOf(const StringLike &symbol, CandleSymbolAttributeIt begin, CandleSymbolAttributeIt end) noexcept
Converts the given string symbol into the candle symbol object with the specified attribute set (iter...
Definition CandleSymbol.hpp:247
virtual void * toGraal() const
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition CandleSymbol.cpp:10
const std::string & toString() const &noexcept
Returns string representation of this symbol.
Definition CandleSymbol.cpp:152
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition CandleSymbol.cpp:21
const std::optional< CandleSession > & getSession() const &noexcept
Returns the session attribute of this symbol.
Definition CandleSymbol.cpp:136
static CandleSymbol fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition CandleSymbol.cpp:37
const std::optional< CandleAlignment > & getAlignment() const &noexcept
Returns alignment attribute of this symbol.
Definition CandleSymbol.cpp:144
Type of the candle aggregation period constitutes CandlePeriod type together its actual value.
Definition CandleType.hpp:24
static const CandleType VOLUME
Certain volume of trades.
Definition CandleType.hpp:73
static const CandleType MONTH
Certain number of months.
Definition CandleType.hpp:58
static const CandleType PRICE_RENKO
Certain price change, calculated according to the following rules:
Definition CandleType.hpp:108
static const CandleType DAY
Certain number of days.
Definition CandleType.hpp:13
std::int64_t getPeriodIntervalMillis() const noexcept
Returns a candle type period in milliseconds as closely as possible.
Definition CandleType.cpp:16
static const CandleType WEEK
Certain number of weeks.
Definition CandleType.hpp:14
static const CandleType HOUR
Certain number of hours.
Definition CandleType.hpp:12
static const CandleType PRICE
Certain price change, calculated according to the following rules:
Definition CandleType.hpp:84
static std::reference_wrapper< const CandleType > parse(const StringLike &s)
Parses string representation of a candle type into an object.
Definition CandleType.cpp:28
static const CandleType TICK
Certain number of ticks.
Definition CandleType.hpp:9
const std::string & toString() const &noexcept
Returns string representation of this candle type.
Definition CandleType.cpp:24
static const CandleType OPTEXP
Certain number of option expirations.
Definition CandleType.hpp:63
static const CandleType SECOND
Certain number of seconds.
Definition CandleType.hpp:10
static const CandleType MINUTE
Certain number of minutes.
Definition CandleType.hpp:11
const std::string & getName() const &noexcept
Returns a name of this candle type.
Definition CandleType.cpp:20
static const CandleType PRICE_MOMENTUM
Certain price change, calculated according to the following rules:
Definition CandleType.hpp:96
static const CandleType YEAR
Certain number of years.
Definition CandleType.hpp:68
Mixin for wrapping calls to common promise methods.
Definition Promise.hpp:73
JavaException getException() const
Returns exceptional outcome of computation.
Definition Promise.hpp:121
void cancel() const
This method cancels computation.
Definition Promise.hpp:168
bool hasResult() const
Returns true when computation has completed normally.
Definition Promise.hpp:89
bool isCancelled() const
Returns true when computation was cancelled.
Definition Promise.hpp:108
bool hasException() const
Returns true when a computation has completed exceptionally or was canceled.
Definition Promise.hpp:98
bool awaitWithoutException(const std::chrono::milliseconds &timeoutInMilliseconds) const
Wait for computation to complete or timeout or throw an exception in case of exceptional completion.
Definition Promise.hpp:155
bool isDone() const
Returns true when a computation has completed normally, or exceptionally, or was canceled.
Definition Promise.hpp:79
bool awaitWithoutException(std::int32_t timeoutInMilliseconds) const
Wait for computation to complete or timeout or throw an exception in case of exceptional completion.
Definition Promise.hpp:138
Manages network connections to feed or publisher.
Definition DXEndpoint.hpp:172
bool isClosed() const
Definition DXEndpoint.cpp:499
SimpleHandler< void(DXEndpoint::State, DXEndpoint::State)> & onStateChange() noexcept
Returns the onStateChange handler that can be used to add or remove listeners.
Definition DXEndpoint.cpp:511
static const std::string DXFEED_PASSWORD_PROPERTY
"dxfeed.password"
Definition DXEndpoint.hpp:238
static std::shared_ptr< DXEndpoint > create(Role role)
Creates an endpoint with a specified role.
Definition DXEndpoint.cpp:486
std::shared_ptr< DXFeed > getFeed() const
Definition DXEndpoint.cpp:212
std::shared_ptr< DXEndpoint > password(const StringLike &password)
Changes password for this endpoint.
Definition DXEndpoint.cpp:139
State
Represents the current state of endpoint.
Definition DXEndpoint.hpp:436
@ CLOSED
Endpoint was closed.
Definition DXEndpoint.hpp:456
@ CONNECTING
The connect method was called to establish connection to remove endpoint, but the connection is not e...
Definition DXEndpoint.hpp:446
@ CONNECTED
The connection to the remote endpoint is established.
Definition DXEndpoint.hpp:451
@ NOT_CONNECTED
Endpoint was created by is not connected to remote endpoints.
Definition DXEndpoint.hpp:440
std::shared_ptr< DXEndpoint > user(const StringLike &user)
Changes username for this endpoint.
Definition DXEndpoint.cpp:132
void reconnect() const
Terminates all established network connections and initiates connecting again with the same address.
Definition DXEndpoint.cpp:158
static std::shared_ptr< DXEndpoint > create()
Creates an endpoint with FEED role.
Definition DXEndpoint.cpp:477
void removeStateChangeListener(std::size_t listenerId) noexcept
Removes a listener notified about changes in state property.
Definition DXEndpoint.cpp:507
const std::string & getName() const &noexcept
Definition DXEndpoint.cpp:503
Role
Represents the role of an endpoint that was specified during its creation.
Definition DXEndpoint.hpp:365
@ PUBLISHER
PUBLISHER endpoint connects to the remote publisher hub (also known as multiplexor) or creates a publ...
Definition DXEndpoint.hpp:410
@ STREAM_FEED
STREAM_FEED endpoint is similar to DXEndpoint::FEED and also connects to the remote data feed provide...
Definition DXEndpoint.hpp:398
@ LOCAL_HUB
LOCAL_HUB endpoint is a local hub without the ability to establish network connections.
Definition DXEndpoint.hpp:426
@ ON_DEMAND_FEED
ON_DEMAND_FEED endpoint is similar to DXEndpoint::FEED, but it is designed to be used with OnDemandSe...
Definition DXEndpoint.hpp:389
@ STREAM_PUBLISHER
STREAM_PUBLISHER endpoint is similar to DXEndpoint::PUBLISHER and also connects to the remote publish...
Definition DXEndpoint.hpp:419
@ FEED
FEED endpoint connects to the remote data feed provider and is optimized for real-time or delayed dat...
Definition DXEndpoint.hpp:376
std::string toString() const override
Returns a string representation of the current object.
Definition DXEndpoint.cpp:376
void awaitProcessed() const
Waits until this endpoint stops processing data (becomes quiescent).
Definition DXEndpoint.cpp:194
std::shared_ptr< DXPublisher > getPublisher() const
Definition DXEndpoint.cpp:221
static const std::string DXFEED_WILDCARD_ENABLE_PROPERTY
"dxfeed.wildcard.enable"
Definition DXEndpoint.hpp:266
std::size_t addStateChangeListener(std::function< void(State, State)> listener) noexcept
Adds a listener notified about changes in state property.
Definition DXEndpoint.hpp:611
static const std::string DXENDPOINT_EVENT_TIME_PROPERTY
"dxendpoint.eventTime"
Definition DXEndpoint.hpp:311
static const std::string DXPUBLISHER_THREAD_POOL_SIZE_PROPERTY
"dxpublisher.threadPoolSize"
Definition DXEndpoint.hpp:294
State getState() const
Returns the state of this endpoint.
Definition DXEndpoint.cpp:128
static const std::string DXENDPOINT_STORE_EVERYTHING_PROPERTY
"dxendpoint.storeEverything"
Definition DXEndpoint.hpp:324
void awaitNotConnected() const
Waits while this endpoint state becomes NOT_CONNECTED or CLOSED.
Definition DXEndpoint.cpp:185
static std::shared_ptr< DXEndpoint > getInstance(Role role)
Returns a default application-wide singleton instance of DXEndpoint for a specific role.
Definition DXEndpoint.cpp:459
static const std::string DXFEED_AGGREGATION_PERIOD_PROPERTY
"dxfeed.aggregationPeriod"
Definition DXEndpoint.hpp:257
void close() const
Closes this endpoint.
Definition DXEndpoint.cpp:515
static const std::string DXFEED_THREAD_POOL_SIZE_PROPERTY
"dxfeed.threadPoolSize"
Definition DXEndpoint.hpp:247
void disconnect() const
Terminates all remote network connections.
Definition DXEndpoint.cpp:167
void closeAndAwaitTermination() const
Closes this endpoint and wait until all pending data processing tasks are completed.
Definition DXEndpoint.cpp:203
static std::shared_ptr< DXEndpoint > getInstance()
Returns a default application-wide singleton instance of DXEndpoint with a FEED role.
Definition DXEndpoint.cpp:450
static const std::string DXPUBLISHER_ADDRESS_PROPERTY
"dxpublisher.address"
Definition DXEndpoint.hpp:285
static const std::string DXFEED_USER_PROPERTY
"dxfeed.user"
Definition DXEndpoint.hpp:228
static const std::string NAME_PROPERTY
"name"
Definition DXEndpoint.hpp:189
static const std::string DXSCHEME_ENABLED_PROPERTY_PREFIX
"dxscheme.enabled."
Definition DXEndpoint.hpp:358
static const std::string DXPUBLISHER_PROPERTIES_PROPERTY
"dxpublisher.properties"
Definition DXEndpoint.hpp:275
static const std::string DXSCHEME_NANO_TIME_PROPERTY
"dxscheme.nanoTime"
Definition DXEndpoint.hpp:344
static const std::string DXFEED_ADDRESS_PROPERTY
"dxfeed.address"
Definition DXEndpoint.hpp:218
void disconnectAndClear() const
Terminates all remote network connections and clears stored data.
Definition DXEndpoint.cpp:176
Role getRole() const noexcept
Returns the role of this endpoint.
Definition DXEndpoint.cpp:495
static const std::string DXFEED_PROPERTIES_PROPERTY
"dxfeed.properties"
Definition DXEndpoint.hpp:200
static std::shared_ptr< Builder > newBuilder()
Creates a new Builder instance.
Definition DXEndpoint.cpp:468
std::shared_ptr< DXEndpoint > connect(const StringLike &address)
Connects to the specified remote address.
Definition DXEndpoint.cpp:146
Main entry class for dxFeed API (read it first).
Definition DXFeed.hpp:115
void detachSubscriptionAndClear(const std::shared_ptr< DXFeedSubscription > &subscription) const
Detaches the given subscription from this feed and clears data delivered to this subscription by publ...
Definition DXFeed.cpp:65
std::vector< std::shared_ptr< E > > getTimeSeriesIfSubscribed(const SymbolWrapper &symbol, std::int64_t fromTime) const
Returns time series of events for the specified event type, symbol and a range of time (without an up...
Definition DXFeed.hpp:1000
std::shared_ptr< DXFeedTimeSeriesSubscription > createTimeSeriesSubscription(EventTypeIt begin, EventTypeIt end)
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.hpp:469
std::shared_ptr< DXFeedSubscription > createSubscription(EventTypeIt begin, EventTypeIt end)
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.hpp:357
std::shared_ptr< DXFeedSubscription > createSubscription(const EventTypesCollection &eventTypes)
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.hpp:407
std::shared_ptr< DXFeedTimeSeriesSubscription > createTimeSeriesSubscription(const EventTypesCollection &eventTypes)
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.hpp:534
std::shared_ptr< PromiseList< E > > getLastEventsPromises(std::initializer_list< SymbolWrapper > collection) const
Requests the last events for the specified event type and a collection of symbols.
Definition DXFeed.hpp:716
std::vector< std::shared_ptr< E > > getTimeSeriesIfSubscribed(const SymbolWrapper &symbol, std::chrono::milliseconds fromTime, std::chrono::milliseconds toTime) const
Returns time series of events for the specified event type, symbol and a range of time if there is a ...
Definition DXFeed.hpp:984
std::vector< std::shared_ptr< E > > getTimeSeriesIfSubscribed(const SymbolWrapper &symbol, std::int64_t fromTime, std::int64_t toTime) const
Returns time series of events for the specified event type, symbol and a range of time if there is a ...
Definition DXFeed.hpp:932
std::shared_ptr< DXFeedSubscription > createSubscription(const EventTypeEnum &eventType) const
Creates a new subscription for a single event type that is attached to this feed.
Definition DXFeed.cpp:85
std::shared_ptr< Promise< std::vector< std::shared_ptr< E > > > > getTimeSeriesPromise(const SymbolWrapper &symbol, std::int64_t fromTime, std::int64_t toTime) const
Requests time series of events for the specified event type, symbol and a range of time.
Definition DXFeed.hpp:880
std::shared_ptr< PromiseList< E > > getLastEventsPromises(const SymbolsCollection &collection) const
Requests the last events for the specified event type and a collection of symbols.
Definition DXFeed.hpp:670
std::shared_ptr< E > getLastEventIfSubscribed(const SymbolWrapper &symbol)
Returns the last event for the specified event type and symbol if there is a subscription for it.
Definition DXFeed.hpp:304
std::shared_ptr< DXFeedSubscription > createSubscription(std::initializer_list< EventTypeEnum > eventTypes) const
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.cpp:98
std::vector< std::shared_ptr< E > > getTimeSeriesIfSubscribed(const SymbolWrapper &symbol, std::chrono::milliseconds fromTime) const
Returns time series of events for the specified event type, symbol and a range of time (without an up...
Definition DXFeed.hpp:1015
static std::shared_ptr< DXFeed > getInstance()
Returns a default application-wide singleton instance of feed.
Definition DXFeed.cpp:16
std::shared_ptr< E > getLastEvent(std::shared_ptr< E > event)
Returns the last event for the specified event instance.
Definition DXFeed.hpp:244
std::shared_ptr< PromiseList< E > > getLastEventsPromises(SymbolIt begin, SymbolIt end) const
Requests the last events for the specified event type and a collection of symbols.
Definition DXFeed.hpp:623
std::shared_ptr< Promise< std::shared_ptr< E > > > getLastEventPromise(const SymbolWrapper &symbol) const
Requests the last event for the specified event type and symbol.
Definition DXFeed.hpp:575
std::shared_ptr< DXFeedTimeSeriesSubscription > createTimeSeriesSubscription(std::initializer_list< EventTypeEnum > eventTypes)
Creates new subscription for multiple event types that is attached to this feed.
Definition DXFeed.cpp:135
std::string toString() const override
Returns a string representation of the current object.
Definition DXFeed.cpp:224
std::shared_ptr< Promise< std::vector< std::shared_ptr< E > > > > getIndexedEventsPromise(const SymbolWrapper &symbol, const IndexedEventSource &source) const
Requests a container of indexed events for the specified event type, symbol and source.
Definition DXFeed.hpp:769
void detachSubscription(const std::shared_ptr< DXFeedSubscription > &subscription) const
Detaches the given subscription from this feed.
Definition DXFeed.cpp:45
std::vector< std::shared_ptr< E > > getIndexedEventsIfSubscribed(const SymbolWrapper &symbol, const IndexedEventSource &source) const
Returns a vector of indexed events for the specified event type, symbol and source if there is a subs...
Definition DXFeed.hpp:825
const Collection & getLastEvents(const Collection &events)
Returns the last events for the specified list of event instances.
Definition DXFeed.hpp:265
void attachSubscription(const std::shared_ptr< DXFeedSubscription > &subscription) const
Attaches the given subscription to this feed.
Definition DXFeed.cpp:25
std::shared_ptr< DXFeedTimeSeriesSubscription > createTimeSeriesSubscription(const EventTypeEnum &eventType) const
Creates a new subscription for a single event type that is attached to this feed.
Definition DXFeed.cpp:113
Provides API for publishing of events to local or remote DXFeed.
Definition DXPublisher.hpp:56
std::shared_ptr< ObservableSubscription > getSubscription(const EventTypeEnum &eventType)
Returns observable set of subscribed symbols for the specified event type.
Definition DXPublisher.cpp:42
void publishEvents(std::initializer_list< std::shared_ptr< EventType > > events) noexcept
Publishes events to the corresponding feed.
Definition DXPublisher.hpp:178
void publishEvents(EventIt begin, EventIt end)
Publishes events to the corresponding feed.
Definition DXPublisher.hpp:198
std::string toString() const override
Returns a string representation of the current object.
Definition DXPublisher.cpp:57
static std::shared_ptr< DXPublisher > getInstance()
Returns a default application-wide singleton instance of DXPublisher.
Definition DXPublisher.cpp:17
void publishEvents(EventsCollection &&events) noexcept
Publishes events to the corresponding feed.
Definition DXPublisher.hpp:160
void publishEvents(std::shared_ptr< EventType > event) noexcept
Publishes an event to the corresponding feed.
Definition DXPublisher.hpp:187
Direction of the price movement.
Definition Direction.hpp:21
static const DXFCPP_EXPORT Direction UNDEFINED
Direction is undefined, unknown or inapplicable.
Definition Direction.hpp:12
static const DXFCPP_EXPORT Direction DOWN
The current price is lower than the previous price.
Definition Direction.hpp:13
static const DXFCPP_EXPORT Direction ZERO
The current price is equal to the only known price value suitable for price direction computation.
Definition Direction.hpp:15
static const DXFCPP_EXPORT Direction ZERO_DOWN
The current price is the same as the previous price and is lower than the last known price of differe...
Definition Direction.hpp:14
static const DXFCPP_EXPORT Direction UP
The current price is higher than the previous price.
Definition Direction.hpp:17
static const DXFCPP_EXPORT Direction ZERO_UP
The current price is the same as the previous price and is higher than the last known price of differ...
Definition Direction.hpp:16
Base abstract class for all dxFeed C++ API entities.
Definition Entity.hpp:13
virtual ~Entity() noexcept=default
The default virtual d-tor.
Mixin for wrapping Promise method calls for a single event.
Definition Promise.hpp:237
std::shared_ptr< E > getResult() const
Returns result of computation.
Definition Promise.hpp:245
std::shared_ptr< E > await() const
Wait for the computation to complete and return its result or throw an exception in case of exception...
Definition Promise.hpp:255
std::shared_ptr< E > await(const std::chrono::milliseconds &timeoutInMilliseconds) const &
Wait for computation to complete or timeout and return its result or throw an exception in case of ex...
Definition Promise.hpp:285
std::shared_ptr< E > await(std::int32_t timeoutInMilliseconds) const &
Wait for computation to complete or timeout and return its result or throw an exception in case of ex...
Definition Promise.hpp:270
bool isOrderSource() const noexcept
Definition EventSourceWrapper.hpp:242
std::unique_ptr< void, decltype(&EventSourceWrapper::freeGraal)> toGraalUnique() const noexcept
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition EventSourceWrapper.hpp:200
std::string toStringUnderlying() const
Returns a string representation of the underlying object.
Definition EventSourceWrapper.hpp:224
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition EventSourceWrapper.hpp:163
std::string toString() const
Returns a string representation of the current object.
Definition EventSourceWrapper.hpp:209
void * toGraal() const noexcept
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition EventSourceWrapper.hpp:184
static EventSourceWrapper fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition EventSourceWrapper.cpp:40
const DataType & getData() const noexcept
Definition EventSourceWrapper.hpp:266
EventSourceWrapper(const IndexedEventSource &data) noexcept
Constructs a wrapper from IndexedEventSource.
Definition EventSourceWrapper.hpp:145
bool isIndexedEventSource() const noexcept
Definition EventSourceWrapper.hpp:235
std::optional< IndexedEventSource > asIndexedEventSource() const noexcept
Definition EventSourceWrapper.hpp:250
std::optional< OrderSource > asOrderSource() const noexcept
Definition EventSourceWrapper.hpp:259
EventSourceWrapper(const OrderSource &data) noexcept
Constructs a wrapper from OrderSource.
Definition EventSourceWrapper.hpp:153
Event type parametrized by a symbol.
Definition EventType.hpp:116
virtual const std::optional< Symbol > & getEventSymbolOpt() const &noexcept=0
Returns the event symbol that identifies this event type in subscription.
virtual void setEventSymbol(const Symbol &eventSymbol) noexcept=0
Changes the event symbol that identifies this event type in subscription.
virtual const Symbol & getEventSymbol() const &noexcept=0
Returns the event symbol that identifies this event type in subscription.
Marks all event types that can be received via dxFeed API.
Definition EventType.hpp:31
std::string toString() const override
Returns a string representation of the current object.
Definition EventType.hpp:89
virtual std::int64_t getEventTime() const noexcept
Returns time when an event was created or zero when time is not available.
Definition EventType.hpp:54
virtual void assign(std::shared_ptr< EventType > event)
Replaces the contents of the event.
Definition EventType.hpp:84
virtual void * toGraal() const =0
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
virtual void setEventTime(std::int64_t) noexcept
Changes event creation time.
Definition EventType.hpp:66
This marker interface marks subscription symbol classes (like TimeSeriesSubscriptionSymbol) that atta...
Definition FilteredSubscriptionSymbol.hpp:27
The wrapper over CEntryPointErrorsEnum, the error code returned by GraalVM.
Definition GraalException.hpp:21
GraalException(CEntryPointErrorsEnum entryPointErrorsEnum)
Constructs an exception.
Definition GraalException.cpp:8
void handle(ArgTypes... args)
Calls the listeners and pass the args to them.
Definition Handler.hpp:122
std::size_t add(ListenerType &&listener)
Adds the listener to "main" group.
Definition Handler.hpp:156
std::size_t operator%=(ListenerType &&listener)
Adds the low priority listener (to the "low priority" group).
Definition Handler.hpp:208
std::size_t operator+=(ListenerType &&listener)
Adds the listener to "main" group.
Definition Handler.hpp:197
void operator()(ArgTypes... args)
Calls the listeners and pass the ars to them.
Definition Handler.hpp:146
Handler(std::size_t mainFuturesSize=MAIN_FUTURES_DEFAULT_SIZE) noexcept
Creates the new handler by specified size of circular buffer of futures.
Definition Handler.hpp:84
void operator-=(std::size_t id)
Removes a listener by the id.
Definition Handler.hpp:236
std::size_t addLowPriority(ListenerType &&listener)
Adds the low priority listener (to the "low priority" group) It will be called after the "main" liste...
Definition Handler.hpp:177
void remove(std::size_t id)
Removes a listener by the id.
Definition Handler.hpp:217
static std::shared_ptr< Builder > newBuilder()
Creates a new instance of HistoryEndpoint::Builder with default configurations.
Definition HistoryEndpoint.cpp:77
Compression
The Compression enum represents different compression algorithms that can be applied to data during t...
Definition HistoryEndpoint.hpp:70
Format
The Format enum represents different formats that can be used to handle data.
Definition HistoryEndpoint.hpp:85
std::vector< std::shared_ptr< E > > getTimeSeries(const SymbolWrapper &symbol, std::int64_t from, std::int64_t to)
Retrieves a list of time series events for a specific type of event and symbol within the given time ...
Definition HistoryEndpoint.hpp:195
Type of iceberg order.
Definition IcebergType.hpp:19
static const DXFCPP_EXPORT IcebergType SYNTHETIC
Represents synthetic (managed outside the exchange) iceberg type.
Definition IcebergType.hpp:13
static const DXFCPP_EXPORT IcebergType UNDEFINED
Iceberg type is undefined, unknown or inapplicable.
Definition IcebergType.hpp:11
static const DXFCPP_EXPORT IcebergType NATIVE
Represents a native (exchange-managed) iceberg type.
Definition IcebergType.hpp:12
Represents an indexed collection of up-to-date information about some condition or state of an extern...
Definition IndexedEvent.hpp:41
virtual EventFlagsMask getEventFlagsMask() const noexcept=0
Returns transactional event flags.
static const EventFlag TX_PENDING
0x01 - A bitmask to get transaction pending indicator from the value of eventFlags property.
Definition IndexedEvent.hpp:48
virtual const IndexedEventSource & getSource() const &noexcept=0
Returns the source of this event.
virtual std::int64_t getIndex() const noexcept=0
Returns unique per-symbol index of this event.
static const EventFlag SNAPSHOT_END
0x08 - A bitmask to get snapshot end indicator from the value of eventFlags property.
Definition IndexedEvent.hpp:57
virtual std::int32_t getEventFlags() const noexcept=0
Returns transactional event flags.
static const EventFlag SNAPSHOT_MODE
0x40 - A bitmask to set snapshot mode indicator into the value of eventFlags property.
Definition IndexedEvent.hpp:63
static const EventFlag SNAPSHOT_SNIP
0x10 - A bitmask to get snapshot snip indicator from the value of eventFlags property.
Definition IndexedEvent.hpp:60
static const EventFlag REMOVE_EVENT
0x02 - A bitmask to get removal indicator from the value of eventFlags property.
Definition IndexedEvent.hpp:51
virtual void setIndex(std::int64_t index)=0
Changes unique per-symbol index of this event.
static const EventFlag SNAPSHOT_BEGIN
0x04 - A bitmask to get snapshot begin indicator from the value of eventFlags property.
Definition IndexedEvent.hpp:54
virtual void setEventFlags(std::int32_t eventFlags) noexcept=0
Changes transactional event flags.
virtual void setEventFlags(const EventFlagsMask &eventFlags) noexcept=0
Changes transactional event flags.
Thrown to indicate that a method has been passed an illegal or inappropriate argument.
Definition InvalidArgumentException.hpp:18
A wrapper over the interceptable Java exceptions thrown by the dxFeed Native Graal SDK.
Definition JavaException.hpp:20
static void throwIfJavaThreadExceptionExists()
Throws a JavaException if it exists (i.e. intercepted by Graal SDK)
Definition JavaException.cpp:31
static JavaException create(void *exceptionHandle)
Creates an exception using native (GraalVM) Java exception handle.
Definition JavaException.cpp:21
JavaException(const StringLike &message, const StringLike &className, const StringLike &stackTrace)
Creates an exception using Java message, className and stack trace.
Definition JavaException.cpp:13
Represents up-to-date information about some condition or state of an external entity that updates in...
Definition LastingEvent.hpp:28
Helper class to compose and parse symbols for market events.
Definition MarketEventSymbols.hpp:39
static bool hasExchangeCode(const StringLike &symbol) noexcept
Returns true if the specified symbol has the exchange code specification.
Definition MarketEventSymbols.hpp:46
static char getExchangeCode(const StringLike &symbol) noexcept
Returns exchange code of the specified symbol or ‘’\0'` if none is defined.
Definition MarketEventSymbols.hpp:56
static std::optional< std::string > getAttributeStringByKey(const StringLike &symbol, const StringLike &key) noexcept
Returns value of the attribute with the specified key.
Definition MarketEventSymbols.hpp:109
static std::string removeAttributeStringByKey(const StringLike &symbol, const StringLike &key) noexcept
Removes one attribute with the specified key while leaving exchange code and other attributes intact.
Definition MarketEventSymbols.hpp:139
static std::string changeAttributeStringByKey(const StringLike &symbol, const StringLike &key, const StringLike &value) noexcept
Changes the value of one attribute value while leaving exchange code and other attributes intact.
Definition MarketEventSymbols.hpp:123
static std::string getBaseSymbol(const StringLike &symbol) noexcept
Returns base symbol without exchange code and attributes.
Definition MarketEventSymbols.hpp:81
static std::string changeExchangeCode(const StringLike &symbol, char exchangeCode) noexcept
Changes exchange code of the specified symbol or removes it if the new exchange code is ‘’\0'`.
Definition MarketEventSymbols.hpp:68
static std::string changeBaseSymbol(const StringLike &symbol, const StringLike &baseSymbol) noexcept
Changes base symbol while leaving exchange code and attributes intact.
Definition MarketEventSymbols.hpp:91
Base class for all market events.
Definition MarketEvent.hpp:24
void setEventTime(std::int64_t eventTime) noexcept override
Changes event creation time.
Definition MarketEvent.cpp:73
MarketEvent(const StringLike &eventSymbol) noexcept
Protected constructor for concrete implementation classes that initializes eventSymbol property.
Definition MarketEvent.cpp:10
const std::string & getEventSymbol() const &noexcept override
Returns a symbol of this event.
Definition MarketEvent.cpp:52
std::int64_t getEventTime() const noexcept override
Returns time when an event was created or zero when time is not available.
Definition MarketEvent.cpp:69
const std::optional< std::string > & getEventSymbolOpt() const &noexcept override
Returns a symbol of this event.
Definition MarketEvent.cpp:60
void assign(std::shared_ptr< EventType > event) override
Replaces the contents of the event.
Definition MarketEvent.cpp:45
void setEventSymbol(const StringLike &eventSymbol) noexcept override
Changes symbol of this event.
Definition MarketEvent.cpp:64
The listener interface for receiving notifications on the changes of observed subscription.
Definition ObservableSubscriptionChangeListener.hpp:23
static std::shared_ptr< ObservableSubscriptionChangeListener > create(std::function< void(const std::unordered_set< SymbolWrapper > &symbols)> onSymbolsAdded)
Creates a listener that will notify the callback about added symbols.
Definition ObservableSubscriptionChangeListener.cpp:69
static std::shared_ptr< ObservableSubscriptionChangeListener > create(std::function< void(const std::unordered_set< SymbolWrapper > &symbols)> onSymbolsAdded, std::function< void(const std::unordered_set< SymbolWrapper > &symbols)> onSymbolsRemoved, std::function< void()> onSubscriptionClosed)
Creates a listener that will notify callbacks about events of adding and deleting symbols,...
Definition ObservableSubscriptionChangeListener.cpp:86
Observable set of subscription symbols.
Definition ObservableSubscription.hpp:21
virtual std::size_t addChangeListener(std::shared_ptr< ObservableSubscriptionChangeListener > listener)=0
Adds subscription change listener.
virtual bool containsEventType(const EventTypeEnum &eventType)=0
Returns true if this subscription contains the corresponding event type.
virtual void removeChangeListener(std::size_t id)=0
Removes subscription change listener by id.
virtual bool isClosed()=0
virtual std::unordered_set< EventTypeEnum > getEventTypes()=0
Provides on-demand historical tick data replay controls.
Definition OnDemandService.hpp:71
Action enum for the Full Order Book (FOB) Orders.
Definition OrderAction.hpp:21
static const DXFCPP_EXPORT OrderAction TRADE
Non-Book Trade - this Trade not refers to any entry in Order Book.
Definition OrderAction.hpp:19
static const DXFCPP_EXPORT OrderAction EXECUTE
Order is fully executed and removed from the Order Book.
Definition OrderAction.hpp:18
static const DXFCPP_EXPORT OrderAction BUST
Prior Trade/Order Execution bust.
Definition OrderAction.hpp:20
static const DXFCPP_EXPORT OrderAction PARTIAL
Size is changed (usually reduced) due to partial order execution.
Definition OrderAction.hpp:17
static const DXFCPP_EXPORT OrderAction REPLACE
Order is modified, and price-time-priority is not maintained (i.e.
Definition OrderAction.hpp:14
static const DXFCPP_EXPORT OrderAction MODIFY
Order is modified without changing its price-time-priority (usually due to partial cancel by the user...
Definition OrderAction.hpp:15
static const DXFCPP_EXPORT OrderAction DELETE
Order is fully canceled and removed from Order Book.
Definition OrderAction.hpp:16
static const DXFCPP_EXPORT OrderAction NEW
New Order is added to Order Book.
Definition OrderAction.hpp:13
static const DXFCPP_EXPORT OrderAction UNDEFINED
Default enum value for orders that do not support "Full Order Book" and for backward compatibility - ...
Definition OrderAction.hpp:12
Type of prices on the OTC Markets.
Definition OtcMarketsPriceType.hpp:22
A list of event receiving results that will be completed normally or exceptionally in the future.
Definition Promise.hpp:435
Result of a computation that will be completed normally or exceptionally in the future.
Definition Promise.hpp:351
A class that represents a promise-based implementation often used for handling asynchronous operation...
Definition Promises.hpp:41
A helper class needed to construct smart pointers to objects and does not allow explicit construction...
Definition SharedEntity.hpp:88
static auto createShared(Args &&...args)
Creates a smart pointer to an object.
Definition SharedEntity.hpp:102
A runtime axception with stacktrace.
Definition RuntimeException.hpp:20
const std::string & getStackTrace() const &
Definition RuntimeException.cpp:81
RuntimeException(const StringLike &message, const StringLike &additionalStackTrace="")
Constructs a runtime exception.
Definition RuntimeException.cpp:67
Scope of an order.
Definition Scope.hpp:21
static const DXFCPP_EXPORT Scope AGGREGATE
Represents aggregate information for a given price level or best bid or the best offer for a given ma...
Definition Scope.hpp:13
static const DXFCPP_EXPORT Scope ORDER
Represents individual order on the market.
Definition Scope.hpp:14
static const DXFCPP_EXPORT Scope COMPOSITE
Represents the best bid or the best offer for the whole market.
Definition Scope.hpp:11
static const DXFCPP_EXPORT Scope REGIONAL
Represents the best bid or the best offer for a given exchange code.
Definition Scope.hpp:12
static const SessionFilter TRADING
Accepts trading sessions only - those with (Session::isTrading() == true).
Definition SessionFilter.hpp:37
static const SessionFilter ANY
Accepts any session - useful for pure schedule navigation.
Definition SessionFilter.hpp:36
SessionFilter(SessionFilterEnum code, const StringLike &name, std::optional< SessionType > type, std::optional< bool > trading) noexcept
Creates a filter with specified type and trading flag conditions.
Definition CandleSession.cpp:21
static const SessionFilter AFTER_MARKET
Accepts any session with type SessionType::AFTER_MARKET.
Definition SessionFilter.hpp:45
static const SessionFilter REGULAR
Accepts any session with type SessionType::REGULAR.
Definition SessionFilter.hpp:44
static const SessionFilter NO_TRADING
Accepts any session with type SessionType::NO_TRADING.
Definition SessionFilter.hpp:40
static const SessionFilter NON_TRADING
Accepts non-trading sessions only - those with (Session::isTrading() == false).
Definition SessionFilter.hpp:38
static const SessionFilter PRE_MARKET
Accepts any session with type SessionType::PRE_MARKET.
Definition SessionFilter.hpp:42
bool accept(Session session) const noexcept
Tests whether or not the specified session is an acceptable result.
Definition SessionFilter.hpp:104
std::optional< bool > trading_
Required trading flag, std::nullopt if not relevant.
Definition SessionFilter.hpp:70
std::optional< SessionType > type_
Required type, std::nullopt if not relevant.
Definition SessionFilter.hpp:68
Defines type of session - what kind of trading activity is allowed (if any), what rules are used,...
Definition SessionType.hpp:33
static const SessionType AFTER_MARKET
After-market session type marks extended trading session after regular trading hours.
Definition SessionType.hpp:19
static const SessionType PRE_MARKET
Pre-market session type marks extended trading session before regular trading hours.
Definition SessionType.hpp:17
static const SessionType REGULAR
Regular session type marks regular trading hours session.
Definition SessionType.hpp:18
static const SessionType NO_TRADING
Non-trading session type is used to mark periods of time during which trading is not allowed.
Definition SessionType.hpp:16
bool isTrading() const noexcept
Returns true if trading activity is allowed for this type of session.
Definition SessionType.hpp:70
A base abstract "shared entity" class. Has some helpers for dynamic polymorphism.
Definition SharedEntity.hpp:20
virtual std::string toString() const
Returns a string representation of the current object.
Definition SharedEntity.hpp:77
std::shared_ptr< T > sharedAs() const noexcept
Returns a pointer to the current object wrapped in a smart pointer to type T.
Definition SharedEntity.hpp:68
std::shared_ptr< T > sharedAs() noexcept
Returns a pointer to the current object wrapped in a smart pointer to type T.
Definition SharedEntity.hpp:55
bool is() const noexcept
Checks that the pointer to the current type could be converted to type T* In other words: whether typ...
Definition SharedEntity.hpp:34
Side of an order or a trade.
Definition Side.hpp:21
static const DXFCPP_EXPORT Side SELL
Sell side (ask or offer).
Definition Side.hpp:13
static const DXFCPP_EXPORT Side UNDEFINED
Side is undefined, unknown or inapplicable.
Definition Side.hpp:11
static const DXFCPP_EXPORT Side BUY
Buy side (bid).
Definition Side.hpp:12
std::size_t operator+=(ListenerType &&listener)
Adds the listener to "main" group.
Definition Handler.hpp:377
void remove(std::size_t id)
Removes a listener by the id.
Definition Handler.hpp:397
void handle(ArgTypes... args)
Calls the listeners and pass the args to them.
Definition Handler.hpp:315
void operator()(ArgTypes... args)
Calls the listeners and pass the ars to them.
Definition Handler.hpp:326
SimpleHandler() noexcept=default
Creates the new handler.
std::size_t addLowPriority(ListenerType &&listener)
Adds the low priority listener (to the "low priority" group) It will be called after the "main" liste...
Definition Handler.hpp:357
void operator-=(std::size_t id)
Removes a listener by the id.
Definition Handler.hpp:416
std::size_t operator%=(ListenerType &&listener)
Adds the low priority listener (to the "low priority" group).
Definition Handler.hpp:388
std::size_t add(ListenerType &&listener)
Adds the listener to "main" group.
Definition Handler.hpp:336
Universal functional object that allows searching std::unordered_map for string-like keys.
Definition Common.hpp:959
Universal functional object that allows searching std::unordered_map for string-like keys.
Definition StringUtils.hpp:171
A simple wrapper around strings or something similar to strings to reduce the amount of code for meth...
Definition Common.hpp:842
A lightweight wrapper around strings or string-like inputs.
Definition StringUtils.hpp:27
StringSymbol(std::string_view stringView) noexcept
Constructs StringSymbol from a std::string_view.
Definition StringSymbol.hpp:55
StringSymbol(const char *chars) noexcept
Constructs StringSymbol from a char array.
Definition StringSymbol.hpp:40
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition StringSymbol.cpp:54
std::string toString() const
Returns a string representation of the current object.
Definition StringSymbol.hpp:105
static StringSymbol fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition StringSymbol.cpp:70
void * toGraal() const
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition StringSymbol.cpp:43
std::optional< CandleSymbol > asCandleSymbol() const noexcept
Definition SymbolWrapper.hpp:381
SymbolWrapper(Symbol &&symbol) noexcept
Constructor for any wrapped symbol.
Definition SymbolWrapper.hpp:157
bool isIndexedEventSubscriptionSymbol() const noexcept
Definition SymbolWrapper.hpp:339
std::string toString() const
Returns a string representation of the current object.
Definition SymbolWrapper.hpp:285
static SymbolWrapper fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition SymbolWrapper.cpp:78
std::string toStringUnderlying() const
Returns a string representation of the underlying object.
Definition SymbolWrapper.hpp:300
std::unique_ptr< void, decltype(&SymbolWrapper::freeGraal)> toGraalUnique() const noexcept
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition SymbolWrapper.hpp:276
bool isStringSymbol() const noexcept
Definition SymbolWrapper.hpp:311
std::optional< IndexedEventSubscriptionSymbol > asIndexedEventSubscriptionSymbol() const noexcept
Definition SymbolWrapper.hpp:347
bool isWildcardSymbol() const noexcept
Definition SymbolWrapper.hpp:325
void * toGraal() const noexcept
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition SymbolWrapper.hpp:257
SymbolWrapper(const IndexedEventSubscriptionSymbol &indexedEventSubscriptionSymbol) noexcept
Constructor for IndexedEventSubscriptionSymbol.
Definition SymbolWrapper.hpp:196
const DataType & getData() const noexcept
Definition SymbolWrapper.hpp:388
std::string asStringSymbol() const noexcept
Definition SymbolWrapper.hpp:318
SymbolWrapper(const StringSymbol &stringSymbol) noexcept
Constructor for any wrapped string symbol.
Definition SymbolWrapper.hpp:170
std::optional< WildcardSymbol > asWildcardSymbol() const noexcept
Definition SymbolWrapper.hpp:332
SymbolWrapper(const CandleSymbol &candleSymbol) noexcept
Constructor for CandleSymbol.
Definition SymbolWrapper.hpp:224
SymbolWrapper(const WildcardSymbol &wildcardSymbol) noexcept
Constructor for any wrapped wildcard (*) symbol.
Definition SymbolWrapper.hpp:183
bool isTimeSeriesSubscriptionSymbol() const noexcept
Definition SymbolWrapper.hpp:356
SymbolWrapper(const TimeSeriesSubscriptionSymbol &timeSeriesSubscriptionSymbol) noexcept
Constructor for TimeSeriesSubscriptionSymbol.
Definition SymbolWrapper.hpp:210
bool isCandleSymbol() const noexcept
Definition SymbolWrapper.hpp:373
std::optional< TimeSeriesSubscriptionSymbol > asTimeSeriesSubscriptionSymbol() const noexcept
Definition SymbolWrapper.hpp:364
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition SymbolWrapper.cpp:40
Type of a time and sale event.
Definition TimeAndSaleType.hpp:21
static const DXFCPP_EXPORT TimeAndSaleType NEW
Represents new time and sale event.
Definition TimeAndSaleType.hpp:11
static const DXFCPP_EXPORT TimeAndSaleType CANCEL
Represents cancel time and sale event.
Definition TimeAndSaleType.hpp:13
static const DXFCPP_EXPORT TimeAndSaleType CORRECTION
Represents correction time and sale event.
Definition TimeAndSaleType.hpp:12
Value class for period of time with support for ISO8601 duration format.
Definition TimePeriod.hpp:21
static TimePeriod valueOf(const StringLike &value)
Returns TimePeriod represented with a given string.
Definition TimePeriod.cpp:24
static TimePeriod valueOf(std::chrono::milliseconds value)
Returns TimePeriod with value milliseconds.
Definition TimePeriod.hpp:44
std::int64_t getNanos() const
Returns value in nanoseconds.
Definition TimePeriod.cpp:44
static const TimePeriod ZERO
Time-period of zero.
Definition TimePeriod.hpp:25
std::int32_t getSeconds() const
Returns value in seconds.
Definition TimePeriod.cpp:36
std::int64_t getTime() const
Returns value in milliseconds.
Definition TimePeriod.cpp:28
static const TimePeriod UNLIMITED
Time-period of "infinity" (time of std::numeric_limits<std::int64_t>::max() or LLONG_MAX).
Definition TimePeriod.hpp:28
static TimePeriod valueOf(std::int64_t value)
Returns TimePeriod with value milliseconds.
Definition TimePeriod.cpp:20
Represents time-series snapshots of some process that is evolving in time or actual events in some ex...
Definition TimeSeriesEvent.hpp:81
const IndexedEventSource & getSource() const &noexcept override
Returns the source identifier for this event, which is always DEFAULT for time-series events.
Definition TimeSeriesEvent.hpp:92
std::int64_t getIndex() const noexcept override
Returns unique per-symbol index of this event.
Definition TimeSeriesEvent.hpp:113
virtual std::int64_t getTime() const noexcept=0
Returns timestamp of the event.
virtual std::int64_t getEventId() const noexcept
Returns unique per-symbol index of this event.
Definition TimeSeriesEvent.hpp:123
Mixin for wrapping Promise method calls for a void.
Definition Promise.hpp:178
void await(std::int32_t timeoutInMilliseconds) const &
Wait for the computation to complete or timeout and return its result or throw an exception in case o...
Definition Promise.hpp:210
void await(const std::chrono::milliseconds &timeoutInMilliseconds) const &
Wait for the computation to complete or timeout and return its result or throw an exception in case o...
Definition Promise.hpp:225
void await() const
Wait for the computation to complete and return its result or throw an exception in case of exception...
Definition Promise.hpp:195
void getResult() const
Returns result of computation.
Definition Promise.hpp:185
static void freeGraal(void *graalNative)
Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
Definition WildcardSymbol.cpp:24
static const WildcardSymbol & fromGraal(void *graalNative)
Creates an object of the current type and fills it with data from the dxFeed Graal SDK structure.
Definition WildcardSymbol.cpp:30
void * toGraal() const noexcept
Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
Definition WildcardSymbol.cpp:14
static const WildcardSymbol ALL
Represents [wildcard] subscription to all events of the specific event type.
Definition WildcardSymbol.hpp:12
std::string toString() const
Returns string representation of this wildcard subscription symbol.
Definition WildcardSymbol.hpp:93
static const std::string RESERVED_PREFIX
Symbol prefix that is reserved for wildcard subscriptions.
Definition WildcardSymbol.hpp:27
The simple key-value structure that represents an endpoint's property.
Definition api.h:184
const char * key
The property's key.
Definition api.h:186
const char * value
The property's value.
Definition api.h:188