blob: 2284d7cde97bf212bd56e581dbaa92aac4f565e4 [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.
#
class Timeout(Exception):
pass
## Messaging Errors
class MessagingError(Exception):
def __init__(self, code=None, text=None, **info):
self.code = code
self.text = text
self.info = info
if self.code is None:
msg = self.text
else:
msg = "%s(%s)" % (self.text, self.code)
if info:
msg += " " + ", ".join(["%s=%r" % (k, v) for k, v in self.info.items()])
Exception.__init__(self, msg)
class InternalError(MessagingError):
pass
## Connection Errors
class ConnectionError(MessagingError):
"""
The base class for all connection related exceptions.
"""
pass
class ConnectError(ConnectionError):
"""
Exception raised when there is an error connecting to the remote
peer.
"""
pass
class VersionError(ConnectError):
pass
class AuthenticationFailure(ConnectError):
pass
class ConnectionClosed(ConnectionError):
pass
class HeartbeatTimeout(ConnectionError):
pass
## Session Errors
class SessionError(MessagingError):
pass
class Detached(SessionError):
"""
Exception raised when an operation is attempted that is illegal when
detached.
"""
pass
class NontransactionalSession(SessionError):
"""
Exception raised when commit or rollback is attempted on a non
transactional session.
"""
pass
class TransactionError(SessionError):
"""Base class for transactional errors"""
pass
class TransactionAborted(TransactionError):
"""The transaction was automatically rolled back. This could be due to an error
on the broker, such as a store failure, or a connection failure during the
transaction"""
pass
class TransactionUnknown(TransactionError):
""" The outcome of the transaction on the broker (commit or roll-back) is not
known. This occurs when the connection fails after we sent the commit but
before we received a response."""
pass
class UnauthorizedAccess(SessionError):
pass
class ServerError(SessionError):
pass
class SessionClosed(SessionError):
pass
## Link Errors
class LinkError(MessagingError):
pass
class InsufficientCapacity(LinkError):
pass
class AddressError(LinkError):
pass
class MalformedAddress(AddressError):
pass
class InvalidOption(AddressError):
pass
class ResolutionError(AddressError):
pass
class AssertionFailed(ResolutionError):
pass
class NotFound(ResolutionError):
pass
class LinkClosed(LinkError):
pass
## Sender Errors
class SenderError(LinkError):
pass
class SendError(SenderError):
pass
class TargetCapacityExceeded(SendError):
pass
## Receiver Errors
class ReceiverError(LinkError):
pass
class FetchError(ReceiverError):
pass
class Empty(FetchError):
"""
Exception raised by L{Receiver.fetch} when there is no message
available within the alloted time.
"""
pass
## Message Content errors
class ContentError(MessagingError):
"""
This type of exception will be returned to the application
once, and will not block further requests
"""
pass
class EncodeError(ContentError):
pass
class DecodeError(ContentError):
pass