36 return "DisableInstrument";
52[[nodiscard]]
constexpr bool contains_ci(std::string_view hay, std::string_view needle)
noexcept {
53 if (needle.size() > hay.size())
return false;
54 for (std::size_t i = 0; i + needle.size() <= hay.size(); ++i) {
56 for (std::size_t j = 0; j < needle.size(); ++j) {
59 if (a >=
'A' && a <=
'Z') a =
static_cast<char>(a + 32);
60 if (b >=
'A' && b <=
'Z') b =
static_cast<char>(b + 32);
constexpr std::string_view to_string(ChannelState s) noexcept
Definition venue.hpp:51
@ None
not a multicast venue
constexpr bool contains_ci(std::string_view hay, std::string_view needle) noexcept
Case-insensitive substring search (venue error messages vary in case).
Definition error_action.hpp:54
VenueAction
What the connector does beyond reporting the reject to the engine.
Definition error_action.hpp:15
@ DisableInstrument
precision/filter failure: config is wrong for this symbol
@ RateLimit
enter RateLimiter cooldown
@ Backoff
transient venue-side failure: retry later
@ Fatal
bad key/signature/permissions: cannot continue
@ HardStop
IP ban: stop REST.
@ ResyncClock
timestamp outside the window: fetch server time, recompute offset
@ Reconcile
unknown order / status unknown: request open orders
RejectReason
Ordered exactly like RiskEngine::check_new evaluates them (5.7), followed by OMS / transport / venue ...
Definition enums.hpp:123
@ VenueReject
Venue-originated.
VenueAction action
Definition error_action.hpp:49
bool known
false: code not in the table (still mapped to VenueReject)
Definition error_action.hpp:50
RejectReason reason
Definition error_action.hpp:48