cpp/include/rocketmq/ErrorCode.h (61 lines of code) (raw):
/*
* 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 = 10000,
/**
* @brief To publish FIFO messages, only synchronous API is supported.
*/
BadRequestAsyncPubFifoMessage = 10100,
/**
* @brief 102XX is used for client side error.
*
*/
InternalClientError = 10200,
/**
* @brief Broker has processed the request but is not going to return any content.
*/
NoContent = 20400,
/**
* @brief Bad configuration. For example, negative max-attempt-times.
*
*/
BadConfiguration = 30000,
/**
* @brief Generic code, representing multiple return results.
*
*/
MultipleResults = 30100,
/**
* @brief The server cannot process the request due to apparent client-side
* error. For example, topic contains invalid character or is excessively
* long.
*
*/
BadRequest = 40000,
/**
* @brief The access point is illegal
*
*/
IllegalAccessPoint = 40001,
IllegalTopic = 40002,
IllegalConsumerGroup = 40003,
IllegalMessageTag = 40004,
IllegalMessageKey = 40005,
IllegalMessageGroup = 40006,
IllegalMessageProperty = 40007,
InvalidTransactionId = 40008,
IllegalMessageId = 40009,
IllegalFilterExpression = 40010,
InvalidReceiptHandle = 40011,
/**
* @brief Message property conflicts with its type.
*/
MessagePropertyConflictWithType = 40012,
// Client type is not recognized by server
UnsupportedClientType = 40013,
// Received message is corrupted, generally failing to pass integrity checksum validation.
MessageCorrupted = 40014,
// Request is rejected due to missing of x-mq-client-id HTTP header in the metadata frame.
ClientIdRequired = 40015,
/**
* @brief Authentication failed. Possibly caused by invalid credentials.
*
*/
Unauthorized = 40100,
/**
* @brief Credentials are understood by server but authenticated user does not
* have privilege to perform the requested action.
*
*/
Forbidden = 40300,
/**
* @brief Topic not found, which should be created through console or
* administration API before hand.
*
*/
NotFound = 40400,
MessageNotFound = 40401,
TopicNotFound = 404002,
ConsumerGroupNotFound = 404003,
/**
* @brief Timeout when connecting, reading from or writing to brokers.
*
*/
RequestTimeout = 40800,
/**
* @brief Message body is too large.
*
*/
PayloadTooLarge = 41300,
/**
* @brief Message body size exceeds limited allowed by server.
*/
MessageBodyTooLarge = 41301,
/**
* @brief Message body is empty.
*/
MessageBodyEmpty = 41302,
/**
* @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 = 42800,
/**
* @brief Quota exhausted. The user has sent too many requests in a given
* amount of time.
*
*/
TooManyRequests = 42900,
/**
* @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 = 43100,
// Message properties total size exceeds the threshold.
MessagePropertiesTooLarge = 43101,
/**
* @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 = 45100,
/**
* @brief Server side interval error
*
*/
InternalServerError = 50000,
/**
* @brief The server either does not recognize the request method, or it lacks
* the ability to fulfil the request.
*
*/
NotImplemented = 50100,
/**
* @brief The server was acting as a gateway or proxy and received an invalid
* response from the upstream server.
*
*/
BadGateway = 50200,
/**
* @brief The server cannot handle the request (because it is overloaded or
* down for maintenance). Generally, this is a temporary state.
*
*/
ServiceUnavailable = 50300,
/**
* @brief The server was acting as a gateway or proxy and did not receive a
* timely response from the upstream server.
*
*/
GatewayTimeout = 50400,
/**
* @brief The server does not support the protocol version used in the
* request.
*
*/
NotSupported = 50500,
ProtocolUnsupported = 50501,
VerifyFifoMessageUnsupported = 50502,
/**
* @brief The server is unable to store the representation needed to complete
* the request.
*
*/
InsufficientStorage = 50700,
};
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