Releases: dxFeed/dxfeed-graal-cxx-api
Releases · dxFeed/dxfeed-graal-cxx-api
Release list
v8.0.0
- [MDAPI-423][C++] [BREAKING] Fixed Java-to-C++ porting errors in packed event fields, native
conversions, string handling, and candle attributes.setSequence()andOrderBase::setSource()now preserve unrelated packed bits;Messagenative conversion
preserves event time;StringLikecopy/move operations and native C-string handling are now safe.- Candle equality, formatting, price-level validation/parsing, and session parsing now match Java QD semantics.
Price levels reject negative values, negative zero, infinities, and trailing parse data; floating-point equality
follows Java NaN/signed-zero rules; only case-insensitive"true"enables the regular candle session. - APIs that can fail validation or parsing are no longer
noexcept; invalid input now throws an exception instead
of terminating the process.
- Migrated to Graal SDK v3.2.13.
v7.0.0
- [MDAPI-417] [BREAKING] All methods of the
Orderclass and its descendants whose names begin with "with" are made virtual. - [MDAPI-416] [BREAKING] All "publish" methods of the
DXPublisherclass are now const and can throw exceptions. - The project now depends on the zip bundles of the dxFeed Graal Native SDK library, which are located in GitHub Releases.
- [BREAKING] Project build speed has been improved. The implementation of all non-template methods of non-template classes is now located in .cpp files.
- Improved documentation. Classes are now divided into "modules".
Main Page - Topics - dxFeed Graal C++ API Modules.
v6.0.0
- [MDAPI-405] Fixed project build errors that occurred when attempting to build a project using clang 19+.
- [MDAPI-406] Fixed linking errors where some static fields could be uninitialized.
- [MDAPI-411] Fixed the
toString()method of the Summary event. - Migrated to Graal SDK v3.2.0.
- [BREAKING] Fixed a sporadic build error where the compiler failed to pick the correct method implementation when only a single event type was specified during subscription creation.
These methods are now const:template <typename EventTypeIt> std::shared_ptr<DXFeedSubscription> createSubscription(EventTypeIt begin, EventTypeIt end) const;template <typename EventTypesCollection> std::shared_ptr<DXFeedSubscription> createSubscription(const EventTypesCollection &eventTypes) const;template <typename EventTypeIt> std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(EventTypeIt begin, EventTypeIt end) const;std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(std::initializer_list<EventTypeEnum> eventTypes) const;template <typename EventTypesCollection> std::shared_ptr<DXFeedTimeSeriesSubscription> createTimeSeriesSubscription(const EventTypesCollection &eventTypes) const;
- Added the ability to collect and register metrics. Enabled by the DXFCXX_ENABLE_METRICS CMake option. Documentation: TBD.
- Added CMake option
DXFCXX_MSVC_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR.
This option enables MSVC's_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTORworkaround for compatibility with older VC++ runtime
libraries. It should normally remain disabled and is intended only for environments that experience crashes caused by
mixing newer STL headers with oldermsvcp140.dllversions.
See:
v5.0.0
- [MDAPI-262][C++][Linux] Shared libraries now compiled with
noexecstackflag. - [MDAPI-238][С++] Added the ability to set Java System properties.
- The sources of system properties are:
- Environment Variables.
- All keys must start with the prefix
DXFEED_, e.g.DXFEED_log.file=log.txt,
DXFEED_dxscheme.bat=millis, etc. - This allows overriding a property without changing the files, in fact it is analogous to
java -Dkey=value -jar app.jar. - In operating systems such as Linux and macOS, you can pass properties in the following ways:
env DXFEED_key1=value1 DXFEED_key2=value2 ./app - In Windows, properties can be passed using the following syntax:
set DXFEED_key1=value1 && set DXFEED_key2=value2 && app.exe,
but be careful, this will set environment variables globally for the open terminal, to avoid setting
properties globally, you can use the following method:
cmd /v/c "set DXFEED_key1=value1 && set DXFEED_key2=value2 && app.exe"
- All keys must start with the prefix
dxfeed.system.properties- This file follows the
java.propertiesorINIformat and is generally compatible if you don't go into
detail. - The path to this file can be specified by setting the environment variable
DXFEED_dxfeed.system.properties. - By default, this file is searched for in the current runtime directory.
- This file follows the
- Environment Variables.
- Priority and Overrides:
-
The configuration sources are applied in the following order, with each successive source overwriting values
from the previous one:dxfeed.system.properties- Environment Variables
- Direct calls to
System::setPropertyin source code, in the order in which they were called.
This order ensures that the most specific configuration settings are applied last, allowing for effective
overrides and precise control over system properties.
-
- The sources of system properties are:
- [MDAPI-178][C++] Added com.dxfeed.glossary package
- Added
AdditionUnderlyingsclass. - Added
CFIclass. - Added
PriceIncrementsclass. - Added
RoundingModeenum.
- Added
- [BREAKING] The
Day::getHashCodemethod renamed toDay::hashCode. - [BREAKING] The
Session::getHashCodemethod renamed toSession::hashCode. - [BREAKING] The
DXEndpoint::getEventTypes()method now can throw exceptions. - [BREAKING] Most of the input string arguments in class methods have been replaced with a
StringLikewrapper for
unification. - Fixed the naming of endpoints.
- Project build has been speeded up.
- The project has been migrated to fmtlib v12.1.0.
- [Linux][Windows][x64] Added the ability to link with the debug version of the dxFeed Graal Native SDK on Linux x86_64 and Windows x86_64.
This linking can be enabled using theDXFCXX_USE_DEBUG_DXFEED_GRAAL_NATIVE_SDKoption. - [MacOS][BREAKING] We're now building the project on MacOS using Xcode 16.4.
You can build the project yourself from source code using earlier versions.
v4.3.1
- [MDAPI-275][C++] Fixed compilation of code using
DXFeed::getLastEventsPromises()method.- Added unit-tests for
DXFeed::getLastEventsPromises()method. - Fixed documentation for
DXFeed::getLastEventsPromises()method. - Added
testQuotePromisesfunction to theQuoteAndTradeSampleto demonstrate how to useDXFeed::getLastEventsPromises().
- Added unit-tests for
v4.3.0
- [MDAPI-108][С++] Added CandleWebService API sample.
- [MDAPI-253][C++] Implemented HistoryEndpoint
- Added
HistoryEndpointclass. - Migrated to Graal SDK v2.6.2
- Added
- Renamed
DXFCXX_NODEFAULTLIB_LIBCMTtoDXFCXX_NODEFAULTLIBCMake project option for clearer purposes and added support for additional libraries in/NODEFAULTLIBconfiguration. - [MDAPI-254][C++] Migrated to Graal SDK v2.5.0
- Added
AGGREGATE,COMPOSITE,REGIONALOrderSource. The new system propertydxscheme.unitaryOrderSource=true|falsehas been added.
It controls whether a single or unitary source is used when subscribing to all sources. It is set to 'false' by default.
All separate sources, such asCOMPOSITE_ASK,COMPOSITE_BID,REGIONAL_ASK,REGIONAL_BID,AGGREGATE_ASKandAGGREGATE_BIDhave been
declared deprecated. - Added new Order source for BlueOcean ATS: ocea.
- Added new Order sources for IG CFDs Gate: IGC, igc.
- Added new Order sources for EDX Gate: EDX, edx.
- Added new Order sources for Nuam Exchange Gate: NUAM, nuam.
- Added
- Added the ability to automatically generate the DXEndpoint name.
If the user does not explicitly specify the endpoint name, it will be generated using the templateqdcxx{Id},
where{Id}will be an empty string for the first instance of the endpoint and "-2", "-3", etc. for subsequent instances.
v4.2.1
v4.2.0
- [MDAPI-249][C++] Transitive dependencies are hidden.
- Fixed a segfault related to linking features: added a default constructor for
ApiContext. - [MDAPI-246][С++] Added an ability to build the project with statically linked runtime libraries with Visual
Studio. - Fixed dynamic linking under Windows. These classes and functions are affected:
PromiseImpl,VoidPromiseImpl,EventPromiseImpl,EventsPromiseImpl,PromiseListImplisolated::internal::IsolatedTools::parseSymbols,isolated::internal::IsolatedTools::parseSymbolsAndSaveOrder,
isolated::internal::IsolatedTools::runTool- All C-API functions.
- Added the ability to enable dynamic linking of tests using the CMake parameter
DXFCXX_DYNAMICALLY_LINK_UNIT_TESTS - Added the ability to enable dynamic linking of samples using the CMake parameter
DXFCXX_DYNAMICALLY_LINK_SAMPLES - Added the ability to enable dynamic linking of tools using the CMake parameter
DXFCXX_DYNAMICALLY_LINK_TOOLS - Added the ability to statically link Windows runtime libraries (for Visual Studio) using the
DXFCXX_LINK_STATIC_RUNTIMEparameter - Added the ability to ignore the libcmt/libcmtd library when statically linking Windows runtime libraries using the
DXFCXX_NODEFAULTLIB_LIBCMTparameter (works only when theDXFCXX_LINK_STATIC_RUNTIMEparameter is enabled) - Added preparation of library releases for Windows, linked statically with runtime libraries (with parameters:
/MT,
/MTd,/NODEFAULTLIB:LIBCMT,/NODEFAULTLIB:LIBCMTD). The names of these artifacts end with-static-mt, for
exampledxFeedGraalCxxApi-v4.2.0-rc1-x86_64-windows-Release-static-mt.zip - [MDAPI-248][C++] Now documentation is automatically collected and published on GitHub Pages and released.
v4.1.0
- [MDAPI-35][C++] Added RequestProfileSample example
- [MDAPI-30][C++] Added LastEventsConsoleSample sample
- [MDAPI-27][C++] Implemented OptionChain
- Added
OptionChainclass. - Added
OptionSeriesclass. - Added
OptionChainsBuilderclass. - Added
OptionChainSampleexample.
- Added
- [MDAPI-77][C++] Added support for retrieving indexed events from feed
- [MDAPI-78][C++] Added support for retrieving time-series events from feed
- [MDAPI-36][C++] Implemented DXFeedTimeSeriesSubscription
- Added
DXFeedTimeSeriesSubscriptionclass. - Added
DXFeed::createTimeSeriesSubscriptionmethods.
- Added
- [MDAPI-214][C++][Console] Added MarketDepthModelSample
- Added
MarketDepthModelSample. - Added
CmdArgsUtils::parseEventSourcesmethod.
- Added
- [MDAPI-216][C++][Console] Added PriceLevelBook sample
- [MDAPI-76][C++] Implemented TextMessage event
- Migrated to Graal SDK v2.2.1
- [MDAPI-214][C++][Console] Added MarketDepthModelSample
- Added
MarketDepthModelSample. - Added
CmdArgsUtils::parseEventSourcesmethod.
- Added
v4.0.0
- [MDAPI-38][C++] Add MultipleMarketDepthSample sample
- Added
MultipleMarketDepthSamplesample. - Added
AuthSamplesample. - Added
ReconnectSamplesample. - Added
IncOrderSnapshotSamplesample.
- Added
- Migrated to Graal SDK v2.1.2
- [MDAPI-211][C++] Implement logging management
- Added
Loggingclass.
- Added
- [MDAPI-82][C++] Implement MarketDepthModel
- Added
MarketDepthModelclass. - Added
MarketDepthModelListenerclass.
- Added
- [MDAPI-84][C++] Implement TimeSeriesTxModel
- Added
TimeSeriesTxModelclass.
- Added
- [MDAPI-83][C++] Implement IndexedTxModel
- Added
TxModelListenerclass. - Added
IndexedTxModelclass. - Added
EventSourceWrapperclass needed to pass heterogeneous event sources using a container.
- Added
- [MDAPI-79][C++] Retrieve promise-based events from feed
- Added
PromiseList<E>class whereE- event type: a list of event receiving results that will be completed
normally or exceptionally in the future.
It is astd::vector<Promise<std::shared_ptr<E>>>wrapper with Graal semantics. - Added
Promise<void>class. - Added
Promisesclass: utility methods to manipulatePromise<>promises.- Added
Promises::allOf(Collection &&collection)method that returns a new promise that completes when all
promises from the given collection complete normally or exceptionally.
- Added
- Fixed the
Promise<std::shared_ptr<E>>semantics. - Added
DXFeed::getLastEventPromisemethod. - Added
DXFeed::getLastEventsPromisesmethod. - Added
DXFeed::getIndexedEventsPromisemethod. - [BREAKING] The
DXFeed::getTimeSeriesPromisenow returns
std::shared_ptr<Promise<std::vector<std::shared_ptr<E>>>> - [BREAKING] The
IndexedEventSubscriptionSymbol::getSourcemethod now returns
std::unique_ptr<IndexedEventSource>
- Added