#include <Python.h>
#include <boost/version.hpp>
#include <stdexcept>
#include <string>
#include <map>
#include <ecto/config.hpp>
#include <ecto/util.hpp>
#include <boost/optional.hpp>
#include <boost/exception/exception.hpp>
#include <boost/exception/info.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
Go to the source code of this file.
|
| ecto::except::BOOST_PP_SEQ_FOR_EACH (ECTO_DECLARE_EXCEPTION,~, ECTO_EXCEPTIONS) |
|
std::string | ecto::except::diagnostic_string (const EctoException &) |
|
boost::optional< std::string > | ecto::except::diagnostic_string (const EctoException &e, const std::string &tag) |
|
| ecto::except::BOOST_PP_SEQ_FOR_EACH (ECTO_EXCEPTION_TAG_DECL,~, ECTO_EXCEPTION_TAG_NAMES) |
|
| boost::BOOST_PP_SEQ_FOR_EACH (ECTO_EXCEPTION_TAG_TYPE_NAME_DECL,~, ECTO_EXCEPTION_TAG_NAMES) |
|
template<class E , class Tag , class T > |
E const & | boost::operator<< (E const &x, error_info< ::ecto::except::detail::wrap< Tag >, T > const &v) |
|
#define BOOST_PP_LIMIT_DIM 3 |
#define BOOST_PP_LIMIT_ITERATION_DIM 2 |
#define BOOST_PP_LIMIT_SLOT_COUNT 5 |
#define BOOST_PP_LIMIT_SLOT_SIG 10 |
#define BOOST_PP_LIMIT_TUPLE 25 |
#define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP |
#define ECTO_DECLARE_EXCEPTION |
( |
|
r, |
|
|
|
data, |
|
|
|
T |
|
) |
| |
Value:struct T : virtual EctoException \
{ \
const char* what() const throw(); \
};
#define ECTO_EXCEPTION_TAG_DECL |
( |
|
r, |
|
|
|
data, |
|
|
|
NAME |
|
) |
| |
Value:struct BOOST_PP_CAT(tag_, NAME); \
typedef ::boost::error_info<detail::wrap<BOOST_PP_CAT(tag_, NAME)>, \
std::string> NAME; \
#define ECTO_EXCEPTION_TAG_NAMES |
Value:(from_typename)(to_typename)(from_key)(to_key)(from_cell) \
(to_cell)(cpp_typename)(pyobject_repr)(actualtype_hint)(spore_typename) \
(diag_msg)(actualkeys_hint)(tendril_key)(cell_name)(cell_type)(function_name) \
(hint)(which_tendrils)(prev_typename)(cur_typename)(type) \
(what)(when)
#define ECTO_EXCEPTION_TAG_TYPE_NAME_DECL |
( |
|
r, |
|
|
|
data, |
|
|
|
NAME |
|
) |
| |
Value:template <> inline \
ECTO_EXCEPTION_TAG_TYPE_NAME_RETURN_T \
tag_type_name< ::ecto::except::detail::wrap< BOOST_PP_CAT(::ecto::except::tag_, NAME)> >() { \
return BOOST_PP_STRINGIZE(NAME); \
}
#define ECTO_EXCEPTION_TAG_TYPE_NAME_RETURN_T const char* |
Value:(TypeMismatch)(ValueNone)(ValueRequired)(NonExistant) \
(FailedFromPythonConversion)(TendrilRedeclaration)(CellException) \
(NotConnected)(AlreadyConnected)(NullTendril)
#define ECTO_PP_ITERLIMIT 22 |