106 lines
5.0 KiB
C
106 lines
5.0 KiB
C
|
|
/**
|
||
|
|
* 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.
|
||
|
|
*/
|
||
|
|
#ifndef ERROR_HPP_
|
||
|
|
#define ERROR_HPP_
|
||
|
|
|
||
|
|
#include <pulsar/defines.h>
|
||
|
|
|
||
|
|
#include <iosfwd>
|
||
|
|
|
||
|
|
namespace pulsar {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Collection of return codes
|
||
|
|
*/
|
||
|
|
enum Result
|
||
|
|
{
|
||
|
|
ResultRetryable = -1, /// An internal error code used for retry
|
||
|
|
ResultOk = 0, /// Operation successful
|
||
|
|
|
||
|
|
ResultUnknownError, /// Unknown error happened on broker
|
||
|
|
|
||
|
|
ResultInvalidConfiguration, /// Invalid configuration
|
||
|
|
|
||
|
|
ResultTimeout, /// Operation timed out
|
||
|
|
ResultLookupError, /// Broker lookup failed
|
||
|
|
ResultConnectError, /// Failed to connect to broker
|
||
|
|
ResultReadError, /// Failed to read from socket
|
||
|
|
|
||
|
|
ResultAuthenticationError, /// Authentication failed on broker
|
||
|
|
ResultAuthorizationError, /// Client is not authorized to create producer/consumer
|
||
|
|
ResultErrorGettingAuthenticationData, /// Client cannot find authorization data
|
||
|
|
|
||
|
|
ResultBrokerMetadataError, /// Broker failed in updating metadata
|
||
|
|
ResultBrokerPersistenceError, /// Broker failed to persist entry
|
||
|
|
ResultChecksumError, /// Corrupt message checksum failure
|
||
|
|
|
||
|
|
ResultConsumerBusy, /// Exclusive consumer is already connected
|
||
|
|
ResultNotConnected, /// Producer/Consumer is not currently connected to broker
|
||
|
|
ResultAlreadyClosed, /// Producer/Consumer is already closed and not accepting any operation
|
||
|
|
|
||
|
|
ResultInvalidMessage, /// Error in publishing an already used message
|
||
|
|
|
||
|
|
ResultConsumerNotInitialized, /// Consumer is not initialized
|
||
|
|
ResultProducerNotInitialized, /// Producer is not initialized
|
||
|
|
ResultProducerBusy, /// Producer with same name is already connected
|
||
|
|
ResultTooManyLookupRequestException, /// Too Many concurrent LookupRequest
|
||
|
|
|
||
|
|
ResultInvalidTopicName, /// Invalid topic name
|
||
|
|
ResultInvalidUrl, /// Client Initialized with Invalid Broker Url (VIP Url passed to Client Constructor)
|
||
|
|
ResultServiceUnitNotReady, /// Service Unit unloaded between client did lookup and producer/consumer got
|
||
|
|
/// created
|
||
|
|
ResultOperationNotSupported,
|
||
|
|
ResultProducerBlockedQuotaExceededError, /// Producer is blocked
|
||
|
|
ResultProducerBlockedQuotaExceededException, /// Producer is getting exception
|
||
|
|
ResultProducerQueueIsFull, /// Producer queue is full
|
||
|
|
ResultMessageTooBig, /// Trying to send a messages exceeding the max size
|
||
|
|
ResultTopicNotFound, /// Topic not found
|
||
|
|
ResultSubscriptionNotFound, /// Subscription not found
|
||
|
|
ResultConsumerNotFound, /// Consumer not found
|
||
|
|
ResultUnsupportedVersionError, /// Error when an older client/version doesn't support a required feature
|
||
|
|
ResultTopicTerminated, /// Topic was already terminated
|
||
|
|
ResultCryptoError, /// Error when crypto operation fails
|
||
|
|
|
||
|
|
ResultIncompatibleSchema, /// Specified schema is incompatible with the topic's schema
|
||
|
|
ResultConsumerAssignError, /// Error when a new consumer connected but can't assign messages to this
|
||
|
|
/// consumer
|
||
|
|
ResultCumulativeAcknowledgementNotAllowedError, /// Not allowed to call cumulativeAcknowledgement in
|
||
|
|
/// Shared and Key_Shared subscription mode
|
||
|
|
ResultTransactionCoordinatorNotFoundError, /// Transaction coordinator not found
|
||
|
|
ResultInvalidTxnStatusError, /// Invalid txn status error
|
||
|
|
ResultNotAllowedError, /// Not allowed
|
||
|
|
ResultTransactionConflict, /// Transaction ack conflict
|
||
|
|
ResultTransactionNotFound, /// Transaction not found
|
||
|
|
ResultProducerFenced, /// Producer was fenced by broker
|
||
|
|
|
||
|
|
ResultMemoryBufferIsFull, /// Client-wide memory limit has been reached
|
||
|
|
|
||
|
|
ResultInterrupted, /// Interrupted while waiting to dequeue
|
||
|
|
|
||
|
|
ResultDisconnected, /// Client connection has been disconnected
|
||
|
|
};
|
||
|
|
|
||
|
|
// Return string representation of result code
|
||
|
|
PULSAR_PUBLIC const char* strResult(Result result);
|
||
|
|
|
||
|
|
PULSAR_PUBLIC std::ostream& operator<<(std::ostream& s, pulsar::Result result);
|
||
|
|
} // namespace pulsar
|
||
|
|
|
||
|
|
#endif /* ERROR_HPP_ */
|