| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| #pragma once |
| |
| #include "RocketMQ.h" |
| |
| #include <cstdint> |
| #include <system_error> |
| #include <type_traits> |
| |
| ROCKETMQ_NAMESPACE_BEGIN |
| |
| enum class ErrorCode : int |
| { |
| Success = 0, |
| |
| /** |
| * @brief Client state not as expected. Call Producer#start() first. |
| * |
| */ |
| IllegalState = 1, |
| |
| /** |
| * @brief Bad configuration. For example, negative max-attempt-times. |
| * |
| */ |
| BadConfiguration = 300, |
| |
| /** |
| * @brief The server cannot process the request due to apprent client-side |
| * error. For example, topic contains invalid character or is excessively |
| * long. |
| * |
| */ |
| BadRequest = 400, |
| |
| /** |
| * @brief Authentication failed. Possibly caused by invalid credentials. |
| * |
| */ |
| Unauthorized = 401, |
| |
| /** |
| * @brief Credentials are understood by server but authenticated user does not |
| * have privilege to perform the requested action. |
| * |
| */ |
| Forbidden = 403, |
| |
| /** |
| * @brief Topic not found, which should be created through console or |
| * administration API before hand. |
| * |
| */ |
| NotFound = 404, |
| |
| /** |
| * @brief Timeout when connecting, reading from or writing to brokers. |
| * |
| */ |
| RequestTimeout = 408, |
| |
| /** |
| * @brief Message body is too large. |
| * |
| */ |
| PayloadTooLarge = 413, |
| |
| /** |
| * @brief When trying to perform an action whose dependent procedure state is |
| * not right, this code will be used. |
| * 1. Acknowledge a message that is not previously received; |
| * 2. Commit/Rollback a transactional message that does not exist; |
| * 3. Commit an offset which is greater than maximum of partition; |
| */ |
| PreconditionRequired = 428, |
| |
| /** |
| * @brief Quota exchausted. The user has sent too many requests in a given |
| * amount of time. |
| * |
| */ |
| TooManyRequest = 429, |
| |
| /** |
| * @brief The server is unwilling to process the request because either an |
| * individual header field, or all the header fields collectively, are too |
| * large |
| * |
| */ |
| HeaderFieldsTooLarge = 431, |
| |
| /** |
| * @brief A server operator has received a legal demand to deny access to a |
| * resource or to a set of resources that includes the requested resource. |
| * |
| */ |
| UnavailableForLegalReasons = 451, |
| |
| /** |
| * @brief Server side interval error |
| * |
| */ |
| InternalServerError = 500, |
| |
| /** |
| * @brief The server either does not recognize the request method, or it lacks |
| * the ability to fulfil the request. |
| * |
| */ |
| NotImplemented = 501, |
| |
| /** |
| * @brief The server was acting as a gateway or proxy and received an invalid |
| * response from the upstream server. |
| * |
| */ |
| BadGateway = 502, |
| |
| /** |
| * @brief The server cannot handle the request (because it is overloaded or |
| * down for maintenance). Generally, this is a temporary state. |
| * |
| */ |
| ServiceUnavailable = 503, |
| |
| /** |
| * @brief The server was acting as a gateway or proxy and did not receive a |
| * timely response from the upstream server. |
| * |
| */ |
| GatewayTimeout = 504, |
| |
| /** |
| * @brief The server does not support the protocol version used in the |
| * request. |
| * |
| */ |
| ProtocolVersionNotSupported = 505, |
| |
| /** |
| * @brief The server is unable to store the representation needed to complete |
| * the request. |
| * |
| */ |
| InsufficientStorage = 507, |
| }; |
| |
| std::error_code make_error_code(ErrorCode code); |
| |
| ROCKETMQ_NAMESPACE_END |
| |
| namespace std { |
| template <> |
| struct is_error_code_enum<ROCKETMQ_NAMESPACE::ErrorCode> : true_type {}; |
| } // namespace std |