dxFeed Graal CXX API v4.2.1
Loading...
Searching...
No Matches
CEntryPointErrors.hpp
1// Copyright (c) 2025 Devexperts LLC.
2// SPDX-License-Identifier: MPL-2.0
3
4#pragma once
5
6#include "Conf.hpp"
7
9
10#include <compare>
11#include <cstdint>
12#include <functional>
13#include <string>
14#include <unordered_map>
15
16#include "Common.hpp"
17
18#ifdef NO_ERROR
19# undef NO_ERROR
20#endif
21
23
24/**
25 * Enum of the possible error codes returned by internal GraalVM functions
26 *
27 * [Graal:CEntryPointErrors](https://github.com/oracle/graal/blob/master/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/function/CEntryPointErrors.java)
28 */
29enum class CEntryPointErrorsEnum : uint32_t {
30 /// 0 - No error occurred.
31 NO_ERROR = 0,
32
33 /// 1 - An unspecified error occurred.
34 UNSPECIFIED = 1,
35
36 /// 2 - An argument was NULL (nullptr).
37 NULL_ARGUMENT = 2,
38
39 /// 3 - Memory allocation failed, the OS is probably out of memory..
40 ALLOCATION_FAILED = 3,
41
42 /// 4 - The specified thread is not attached to the isolate.
43 UNATTACHED_THREAD = 4,
44
45 /// 5 - The specified isolate is unknown.
46 UNINITIALIZED_ISOLATE = 5,
47
48 /// 6 - Locating the image file failed.
49 LOCATE_IMAGE_FAILED = 6,
50
51 /// 7 - Opening the located image file failed.
52 OPEN_IMAGE_FAILED = 7,
53
54 /// 8 - Mapping the heap from the image file into memory failed.
55 MAP_HEAP_FAILED = 8,
56
57 /// 801 - Reserving address space for the new isolate failed.
58 RESERVE_ADDRESS_SPACE_FAILED = 801,
59
60 /// 802 - The image heap does not fit in the available address space.
61 INSUFFICIENT_ADDRESS_SPACE = 802,
62
63 /// 9 - Setting the protection of the heap memory failed.
64 PROTECT_HEAP_FAILED = 9,
65
66 /// 10 - The version of the specified isolate parameters is unsupported.
67 UNSUPPORTED_ISOLATE_PARAMETERS_VERSION = 10,
68
69 /// 11 - Initialization of threading in the isolate failed.
70 THREADING_INITIALIZATION_FAILED = 11,
71
72 /// 12 - Some exception is not caught.
73 UNCAUGHT_EXCEPTION = 12,
74
75 /// 13 - Initialization the isolate failed.
76 ISOLATE_INITIALIZATION_FAILED = 13,
77
78 /// 14 - Opening the located auxiliary image file failed.
79 OPEN_AUX_IMAGE_FAILED = 14,
80
81 /// 15 - Reading the opened auxiliary image file failed.
82 READ_AUX_IMAGE_META_FAILED = 15,
83
84 /// 16 - Mapping the auxiliary image file into memory failed.
85 MAP_AUX_IMAGE_FAILED = 16,
86
87 /// 17 - Insufficient memory for the auxiliary image.
88 INSUFFICIENT_AUX_IMAGE_MEMORY = 17,
89
90 /// 18 - Auxiliary images are not supported on this platform or edition.
91 AUX_IMAGE_UNSUPPORTED = 18,
92
93 /// 19 - Releasing the isolate's address space failed.
94 FREE_ADDRESS_SPACE_FAILED = 19,
95
96 /// 20 - Releasing the isolate's image heap memory failed.
97 FREE_IMAGE_HEAP_FAILED = 20,
98
99 /// 21 - The auxiliary image was built from a different primary image.
100 AUX_IMAGE_PRIMARY_IMAGE_MISMATCH = 21,
101
102 /// 22 - The isolate arguments could not be parsed.
103 ARGUMENT_PARSING_FAILED = 22,
104
105 /// 23 - Current target does not support the following CPU features that are required by the image.
106 CPU_FEATURE_CHECK_FAILED = 23,
107
108 /// 24 - Image page size is incompatible with run-time page size. Rebuild image with -H:PageSize=[pagesize] to set
109 /// appropriately.
110 PAGE_SIZE_CHECK_FAILED = 24,
111
112 /// 25 - Creating an in-memory file for the GOT failed.
113 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_CREATE_FAILED = 25,
114
115 /// 26 - Resizing the in-memory file for the GOT failed.
116 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_RESIZE_FAILED = 26,
117
118 /// 27 - Mapping and populating the in-memory file for the GOT failed.
119 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_MAP_FAILED = 27,
120
121 /// 28 - Mapping the GOT before an isolate's heap failed (no mapping).
122 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_MMAP_FAILED = 28,
123
124 /// 29 - Mapping the GOT before an isolate's heap failed (wrong mapping).
125 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_WRONG_MMAP = 29,
126
127 /// 30 - Mapping the GOT before an isolate's heap failed (invalid file).
128 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_FD_INVALID = 30,
129
130 /// 31 - Could not create unique GOT file even after retrying.
131 DYNAMIC_METHOD_ADDRESS_RESOLUTION_GOT_UNIQUE_FILE_CREATE_FAILED = 31,
132
133 /// 32 - Could not determine the stack boundaries.
134 UNKNOWN_STACK_BOUNDARIES = 32,
135};
136
137inline constexpr const char *CEntryPointErrorsEnumToStr(CEntryPointErrorsEnum enumValue) {
138 switch (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.";
210 }
211
212 return nullptr;
213}
214
216
#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