14#include <unordered_map>
25
26
27
28
29enum class CEntryPointErrorsEnum : uint32_t {
40 ALLOCATION_FAILED = 3,
43 UNATTACHED_THREAD = 4,
46 UNINITIALIZED_ISOLATE = 5,
49 LOCATE_IMAGE_FAILED = 6,
52 OPEN_IMAGE_FAILED = 7,
58 RESERVE_ADDRESS_SPACE_FAILED = 801,
61 INSUFFICIENT_ADDRESS_SPACE = 802,
64 PROTECT_HEAP_FAILED = 9,
67 UNSUPPORTED_ISOLATE_PARAMETERS_VERSION = 10,
70 THREADING_INITIALIZATION_FAILED = 11,
73 UNCAUGHT_EXCEPTION = 12,
76 ISOLATE_INITIALIZATION_FAILED = 13,
79 OPEN_AUX_IMAGE_FAILED = 14,
82 READ_AUX_IMAGE_META_FAILED = 15,
85 MAP_AUX_IMAGE_FAILED = 16,
88 INSUFFICIENT_AUX_IMAGE_MEMORY = 17,
91 AUX_IMAGE_UNSUPPORTED = 18,
94 FREE_ADDRESS_SPACE_FAILED = 19,
97 FREE_IMAGE_HEAP_FAILED = 20,
100 AUX_IMAGE_PRIMARY_IMAGE_MISMATCH = 21,
103 ARGUMENT_PARSING_FAILED = 22,
106 CPU_FEATURE_CHECK_FAILED = 23,
110 PAGE_SIZE_CHECK_FAILED = 24,
113 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_CREATE_FAILED = 25,
116 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_RESIZE_FAILED = 26,
119 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_MAP_FAILED = 27,
122 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_MMAP_FAILED = 28,
125 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_WRONG_MMAP = 29,
128 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_INVALID = 30,
131 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_UNIQUE_FILE_CREATE_FAILED = 31,
134 UNKNOWN_STACK_BOUNDARIES = 32,
137inline constexpr const char *CEntryPointErrorsEnumToStr(CEntryPointErrorsEnum enumValue) {
139 case CEntryPointErrorsEnum::NO_ERROR:
140 return "No error occurred.";
141 case CEntryPointErrorsEnum::UNSPECIFIED:
142 return "An unspecified error occurred.";
143 case CEntryPointErrorsEnum::NULL_ARGUMENT:
144 return "An argument was NULL (nullptr).";
145 case CEntryPointErrorsEnum::ALLOCATION_FAILED:
146 return "Memory allocation failed, the OS is probably out of memory.";
147 case CEntryPointErrorsEnum::UNATTACHED_THREAD:
148 return "The specified thread is not attached to the isolate.";
149 case CEntryPointErrorsEnum::UNINITIALIZED_ISOLATE:
150 return "The specified isolate is unknown.";
151 case CEntryPointErrorsEnum::LOCATE_IMAGE_FAILED:
152 return "Locating the image file failed.";
153 case CEntryPointErrorsEnum::OPEN_IMAGE_FAILED:
154 return "Opening the located image file failed.";
155 case CEntryPointErrorsEnum::MAP_HEAP_FAILED:
156 return "Mapping the heap from the image file into memory failed.";
157 case CEntryPointErrorsEnum::RESERVE_ADDRESS_SPACE_FAILED:
158 return "Reserving address space for the new isolate failed.";
159 case CEntryPointErrorsEnum::INSUFFICIENT_ADDRESS_SPACE:
160 return "The image heap does not fit in the available address space.";
161 case CEntryPointErrorsEnum::PROTECT_HEAP_FAILED:
162 return "The version of the specified isolate parameters is unsupported.";
163 case CEntryPointErrorsEnum::UNSUPPORTED_ISOLATE_PARAMETERS_VERSION:
164 return "The version of the specified isolate parameters is unsupported.";
165 case CEntryPointErrorsEnum::THREADING_INITIALIZATION_FAILED:
166 return "Initialization of threading in the isolate failed.";
167 case CEntryPointErrorsEnum::UNCAUGHT_EXCEPTION:
168 return "Some exception is not caught.";
169 case CEntryPointErrorsEnum::ISOLATE_INITIALIZATION_FAILED:
170 return "Initialization the isolate failed.";
171 case CEntryPointErrorsEnum::OPEN_AUX_IMAGE_FAILED:
172 return "Opening the located auxiliary image file failed.";
173 case CEntryPointErrorsEnum::READ_AUX_IMAGE_META_FAILED:
174 return "Reading the opened auxiliary image file failed.";
175 case CEntryPointErrorsEnum::MAP_AUX_IMAGE_FAILED:
176 return "Mapping the auxiliary image file into memory failed.";
177 case CEntryPointErrorsEnum::INSUFFICIENT_AUX_IMAGE_MEMORY:
178 return "Insufficient memory for the auxiliary image.";
179 case CEntryPointErrorsEnum::AUX_IMAGE_UNSUPPORTED:
180 return "Auxiliary images are not supported on this platform or edition.";
181 case CEntryPointErrorsEnum::FREE_ADDRESS_SPACE_FAILED:
182 return "Releasing the isolate's address space failed.";
183 case CEntryPointErrorsEnum::FREE_IMAGE_HEAP_FAILED:
184 return "Releasing the isolate's image heap memory failed.";
185 case CEntryPointErrorsEnum::AUX_IMAGE_PRIMARY_IMAGE_MISMATCH:
186 return "The auxiliary image was built from a different primary image.";
187 case CEntryPointErrorsEnum::ARGUMENT_PARSING_FAILED:
188 return "The isolate arguments could not be parsed.";
189 case CEntryPointErrorsEnum::CPU_FEATURE_CHECK_FAILED:
190 return "Current target does not support the following CPU features that are required by the image.";
191 case CEntryPointErrorsEnum::PAGE_SIZE_CHECK_FAILED:
192 return "Image page size is incompatible with run-time page size. Rebuild image with -H:PageSize=[pagesize] to "
193 "set appropriately.";
194 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_CREATE_FAILED:
195 return "Creating an in-memory file for the GOT failed.";
196 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_RESIZE_FAILED:
197 return "Resizing the in-memory file for the GOT failed.";
198 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_MAP_FAILED:
199 return "Mapping and populating the in-memory file for the GOT failed.";
200 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_MMAP_FAILED:
201 return "Mapping the GOT before an isolate's heap failed (no mapping).";
202 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_WRONG_MMAP:
203 return "Mapping the GOT before an isolate's heap failed (wrong mapping).";
204 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_INVALID:
205 return "Mapping the GOT before an isolate's heap failed (invalid file).";
206 case CEntryPointErrorsEnum::DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_UNIQUE_FILE_CREATE_FAILED:
207 return "Could not create unique GOT file even after retrying.";
208 case CEntryPointErrorsEnum::UNKNOWN_STACK_BOUNDARIES:
209 return "Could not determine the stack boundaries.";
#define DXFCXX_DISABLE_MSC_WARNINGS_POP()
Definition Conf.hpp:22
#define DXFCPP_END_NAMESPACE
Definition Conf.hpp:70
#define DXFCPP_BEGIN_NAMESPACE
Definition Conf.hpp:67
#define DXFCXX_DISABLE_GCC_WARNINGS_PUSH(warnings)
Definition Conf.hpp:38
#define DXFCXX_DISABLE_GCC_WARNINGS_POP()
Definition Conf.hpp:40
#define DXFCXX_DISABLE_MSC_WARNINGS_PUSH(warnings)
Definition Conf.hpp:21
#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_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:703
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_password(dxfc_dxendpoint_t endpoint, const char *password)
Changes password for this endpoint.
Definition DXEndpoint.cpp:946
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_publisher(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxpublisher_t *publisher)
Definition DXEndpoint.cpp:1136
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:730
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_add_state_change_listener(dxfc_dxendpoint_t endpoint, dxfc_dxendpoint_state_change_listener listener)
Adds listener that is notified about changes in state property.
Definition DXEndpoint.cpp:1082
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_disconnect(dxfc_dxendpoint_t endpoint)
Terminates all remote network connections.
Definition DXEndpoint.cpp:997
#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:895
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:1048
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 connection is not act...
Definition api.h:159
@ DXFC_DXENDPOINT_STATE_CONNECTED
The connection to 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:788
#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:1065
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:686
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_free(dxfc_dxendpoint_builder_t builder)
Removes a builder from the registry.
Definition DXEndpoint.cpp:776
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:963
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 listener that is notified about changes in state property.
Definition DXEndpoint.cpp:1108
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_builder_with_name(dxfc_dxendpoint_builder_t builder, const char *name)
Changes name that is used to distinguish multiple endpoints in the same process (GraalVM Isolate) in ...
Definition DXEndpoint.cpp:670
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:68
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:747
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_get_feed(dxfc_dxendpoint_t endpoint, DXFC_OUT dxfc_dxfeed_t *feed)
Definition DXEndpoint.cpp:1131
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:1031
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_close(dxfc_dxendpoint_t endpoint)
Closes this endpoint.
Definition DXEndpoint.cpp:878
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_new_builder(DXFC_OUT dxfc_dxendpoint_builder_t *builder)
Creates new dxFeed endpoint's builder instance.
Definition DXEndpoint.cpp:637
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:980
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:912
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_user(dxfc_dxendpoint_t endpoint, const char *user)
Changes username for this endpoint.
Definition DXEndpoint.cpp:929
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 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 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:833
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:810
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:653
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:855
DXFCPP_EXPORT dxfc_error_code_t dxfc_dxendpoint_free(dxfc_dxendpoint_t endpoint)
Removes the dxFeed endpoint from the registry.
Definition DXEndpoint.cpp:1141
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:1014
Base abstract class for all dxFeed C++ API entities.
Definition Entity.hpp:13
virtual ~Entity() noexcept=default
The default virtual d-tor.
Event type parametrized by a symbol.
Definition EventType.hpp:116
virtual const std::optional< Symbol > & getEventSymbolOpt() const &noexcept=0
Returns event symbol that identifies this event type in subscription.
virtual void setEventSymbol(const Symbol &eventSymbol) noexcept=0
Changes event symbol that identifies this event type in subscription.
virtual const Symbol & getEventSymbol() const &noexcept=0
Returns 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 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
A helper class needed to construct smart pointers to objects, and does not allow explicit constructio...
Definition SharedEntity.hpp:89
static auto createShared(Args &&...args)
Creates smart pointer to object.
Definition SharedEntity.hpp:103
Base abstract "shared entity" class. Has some helpers for dynamic polymorphism.
Definition SharedEntity.hpp:21
virtual std::string toString() const
Returns a string representation of the current object.
Definition SharedEntity.hpp:78
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:69
std::shared_ptr< T > sharedAs() noexcept
Returns a pointer to the current object wrapped in a smart pointer to type T.
Definition SharedEntity.hpp:56
bool is() const noexcept
Checks that pointer to the current type could be converted to type T* In other words: whether type T ...
Definition SharedEntity.hpp:35
Universal functional object that allows searching std::unordered_map for string-like keys.
Definition Common.hpp:911
A simple wrapper around strings or something similar to strings to reduce the amount of code for meth...
Definition Common.hpp:794
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