Files
scandocs/uni/masterarbeit/source/moversight/common/Exception.h
2014-06-30 13:58:10 +02:00

370 lines
11 KiB
C++

/*
* File: Exception.h
* Author: jgaebler
*
* Created on May 6, 2010, 9:44 AM
*/
#pragma once
#ifndef UBEEME_EXCEPTION_H
#define UBEEME_EXCEPTION_H
#include "common/Defines.h"
#include <exception>
namespace ubeeme {
namespace moversight {
/**
* @class Exception
* @brief Defines a set of exceptions, used within Moversight.
* @ingroup Moversight
* @author Jan G&auml;bler
*/
class Exception : public std::exception {
public:
/**
* @brief Constructor
* @param message the exception message - what has happened
*/
Exception(const char* message) {
m = message;
}
/**
* @brief Destructor
*/
virtual
~Exception() throw () {
};
/**
* @brief A Java style toString implementation. Returns, what has happened.
* @return What has happened.
*/
const char*
toString() {
return what();
}//End toString
/**
* @brief Overrides the standard what method and tells, what has happened.
* @return What has happened.
*/
virtual const char*
what() const throw () {
return m.c_str();
}
protected:
/**
* @brief Stores the exeption message.
*/
std::string m;
private:
Exception();
};
/**
* @brief Defines a null pointer expception. Used to signal a null pointer error during the execution.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class NullPointerException
*/
class NullPointerException : public Exception {
public:
/**
* @brief Constructor
* @param message what has happened?
*/
NullPointerException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a logic expception. Used to signal a logical error during the execution.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class LogicException
*/
class LogicException : public Exception {
public:
/**
* @brief Constructor
* @param message what has happened?
*/
LogicException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a not implemented yet expception. Used to signal not implemented methods.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class NotImplementedYetException
*/
class NotImplementedYetException : public Exception {
public:
/**
* @brief Constructor
* @param message what has happened?
*/
NotImplementedYetException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines an index out of bounce exception. Used to signal index errors.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class IndexOutOfBounceException
*/
class IndexOutOfBounceException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
IndexOutOfBounceException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines an attribute not set exception. Used to signal the access of undefined references or values.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class AttributeNotSetException
*/
class AttributeNotSetException : public Exception {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
AttributeNotSetException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a peer not found exception. Used to signal the call for a peer, not stored or found within a list, a cluster et cetera.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class PeerNotFoundException
*/
class PeerNotFoundException : public Exception {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
PeerNotFoundException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a entry not found exception. Used to signal that a table or map lookup (or similar) has been failed, as the desired element was not found within the storage structure.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class EntryNotFoundException
*/
class EntryNotFoundException : public Exception {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
EntryNotFoundException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a cluster not found exception. Used to signal the call for a cluster, not stored or found within a list, a group et cetera.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class ClusterNotFoundException
*/
class ClusterNotFoundException : public Exception {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
ClusterNotFoundException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a peer place exception. Used to signal that an error have occur during placing a peer within the topology.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class PeerPlaceException
*/
class PeerPlaceException : public Exception {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
PeerPlaceException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines cluster limit reached exception. Used to signal that no more clusters can be created within the acutal group setting.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class ClusterLimitReachedException
*/
class ClusterLimitReachedException : public PeerPlaceException {
public:
/**
* @brief Constructor
* @param message What has happened?
*/
ClusterLimitReachedException(const char* message) : PeerPlaceException(message) {
}
};
/**
* @brief Defines a timer not found exception. Used to signal timer errors.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class TimerNotFoundException
*/
class TimerNotFoundException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
TimerNotFoundException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a invitation not found exception. Used to signal invitation missing errors.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class InvitationNotFoundException
*/
class InvitationNotFoundException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
InvitationNotFoundException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines a parameter exception. Used to signal setup errors.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class ParameterException
*/
class ParameterException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
ParameterException(const char* message) : Exception(message) {
}
};
/**
* @brief Defines an illegal parameter exception. Used to signal that a given parameter is not valid within the current context.
* @author Jan G&auml;bler
* @ingroup Moversight
* @class IllegalParameterException
*/
class IllegalParameterException : public ParameterException {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
IllegalParameterException(const char * message) : ParameterException(message) {
}
};
/**
* @brief Defines a flush in progress exception. Used to signal that a flush is in progress and no other split or merge is allowed.
* @author Silvio Gaebler
* @ingroup Moversight
* @class FlushModeException
*/
class FlushModeException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
FlushModeException(const char * message) : Exception(message) {
}
};
/**
* @brief Defines a secondary group exception. Signals that the peer is not allowed to do an action because it's not in the primary group(ongoing partition).
* @author Grit Schneider
* @ingroup Moversight
* @class SecondaryGroupException
*/
class SecondaryGroupException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
SecondaryGroupException(const char * message) : Exception(message) {
}
};
/**
* @brief Defines a rejoin lock exception. Signals that the peer is not allowed to do an action because it's actually locked due to a ongoing rejoin.
* @author Grit Schneider
* @ingroup Moversight
* @class RejoinLockException
*/
class RejoinLockException : public Exception {
public:
/**
* @brief Constructor
*
* @param message What has happened?
*/
RejoinLockException(const char * message) : Exception(message) {
}
};
}
}
#endif /* UBEEME_EXCEPTION_H */