blob: 06e3f284139849610dacc87238df929ed22c1603 [file] [log] [blame]
/**
* 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 <pulsar/Result.h>
#include <exception>
#include <string>
struct PulsarException : std::exception {
const pulsar::Result _result;
std::string _msg = "Pulsar error: ";
PulsarException(pulsar::Result res) : _result(res) { _msg += strResult(res); }
const char* what() const noexcept override { return _msg.c_str(); }
};
void raiseException(pulsar::Result result);
#define INHERIT_PULSAR_EXCEPTION(name) \
struct name : PulsarException { \
using PulsarException::PulsarException; \
};
INHERIT_PULSAR_EXCEPTION(UnknownError)
INHERIT_PULSAR_EXCEPTION(InvalidConfiguration)
INHERIT_PULSAR_EXCEPTION(Timeout)
INHERIT_PULSAR_EXCEPTION(LookupError)
INHERIT_PULSAR_EXCEPTION(ConnectError)
INHERIT_PULSAR_EXCEPTION(ReadError)
INHERIT_PULSAR_EXCEPTION(AuthenticationError)
INHERIT_PULSAR_EXCEPTION(AuthorizationError)
INHERIT_PULSAR_EXCEPTION(ErrorGettingAuthenticationData)
INHERIT_PULSAR_EXCEPTION(BrokerMetadataError)
INHERIT_PULSAR_EXCEPTION(BrokerPersistenceError)
INHERIT_PULSAR_EXCEPTION(ChecksumError)
INHERIT_PULSAR_EXCEPTION(ConsumerBusy)
INHERIT_PULSAR_EXCEPTION(NotConnected)
INHERIT_PULSAR_EXCEPTION(AlreadyClosed)
INHERIT_PULSAR_EXCEPTION(InvalidMessage)
INHERIT_PULSAR_EXCEPTION(ConsumerNotInitialized)
INHERIT_PULSAR_EXCEPTION(ProducerNotInitialized)
INHERIT_PULSAR_EXCEPTION(ProducerBusy)
INHERIT_PULSAR_EXCEPTION(TooManyLookupRequestException)
INHERIT_PULSAR_EXCEPTION(InvalidTopicName)
INHERIT_PULSAR_EXCEPTION(InvalidUrl)
INHERIT_PULSAR_EXCEPTION(ServiceUnitNotReady)
INHERIT_PULSAR_EXCEPTION(OperationNotSupported)
INHERIT_PULSAR_EXCEPTION(ProducerBlockedQuotaExceededError)
INHERIT_PULSAR_EXCEPTION(ProducerBlockedQuotaExceededException)
INHERIT_PULSAR_EXCEPTION(ProducerQueueIsFull)
INHERIT_PULSAR_EXCEPTION(MessageTooBig)
INHERIT_PULSAR_EXCEPTION(TopicNotFound)
INHERIT_PULSAR_EXCEPTION(SubscriptionNotFound)
INHERIT_PULSAR_EXCEPTION(ConsumerNotFound)
INHERIT_PULSAR_EXCEPTION(UnsupportedVersionError)
INHERIT_PULSAR_EXCEPTION(TopicTerminated)
INHERIT_PULSAR_EXCEPTION(CryptoError)
INHERIT_PULSAR_EXCEPTION(IncompatibleSchema)
INHERIT_PULSAR_EXCEPTION(ConsumerAssignError)
INHERIT_PULSAR_EXCEPTION(CumulativeAcknowledgementNotAllowedError)
INHERIT_PULSAR_EXCEPTION(TransactionCoordinatorNotFoundError)
INHERIT_PULSAR_EXCEPTION(InvalidTxnStatusError)
INHERIT_PULSAR_EXCEPTION(NotAllowedError)
INHERIT_PULSAR_EXCEPTION(TransactionConflict)
INHERIT_PULSAR_EXCEPTION(TransactionNotFound)
INHERIT_PULSAR_EXCEPTION(ProducerFenced)
INHERIT_PULSAR_EXCEPTION(MemoryBufferIsFull)
INHERIT_PULSAR_EXCEPTION(Interrupted)
#undef INHERIT_PULSAR_EXCEPTION