X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Ft2n_exception.hxx;h=121d4829dd82be41ba7536f9264cb4a38aeee9fa;hp=719110106ff502098bb81475b576053962ddc0d4;hb=1450c0649dc1f1414fd8e051b8d452f4adcb4b24;hpb=d184c64894e6c4f3adb9467078acfc9e7446664a diff --git a/src/t2n_exception.hxx b/src/t2n_exception.hxx index 7191101..121d482 100644 --- a/src/t2n_exception.hxx +++ b/src/t2n_exception.hxx @@ -38,7 +38,10 @@ void serialize(Archive & ar, std::exception & g, const unsigned int version) namespace libt2n { -/// a generic exception that can be handeled with libt2n +/** @brief a generic exception that can be handeled with libt2n + @note don't derive the exceptions your application generates directly from this one + but use libt2n::t2n_runtime_error for this +*/ class t2n_exception : public std::exception { private: @@ -46,11 +49,7 @@ class t2n_exception : public std::exception friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(exception); - ar & BOOST_SERIALIZATION_NVP(message); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_exception(const std::string& _message) @@ -78,10 +77,7 @@ class t2n_communication_error : public t2n_exception private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_communication_error(const std::string& _message) @@ -104,10 +100,7 @@ class t2n_connect_error : public t2n_communication_error private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_connect_error(const std::string& _message) @@ -130,10 +123,7 @@ class t2n_server_error : public t2n_communication_error private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_server_error(const std::string& _message) @@ -156,10 +146,7 @@ class t2n_transfer_error : public t2n_communication_error private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_transfer_error(const std::string& _message) @@ -182,10 +169,7 @@ class t2n_version_mismatch : public t2n_communication_error private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_version_mismatch(const std::string& _message) @@ -208,10 +192,7 @@ class t2n_command_error : public t2n_exception private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_command_error(const std::string& _message) @@ -234,10 +215,7 @@ class t2n_serialization_error : public t2n_exception private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_serialization_error(const std::string& _message) @@ -256,16 +234,15 @@ class t2n_serialization_error : public t2n_exception /** @brief a runtime error within the remote function. derive your own custom exceptions from this one + + @note you must override the virtual clone method if you do so (used by libt2n::command_server::handle()) */ class t2n_runtime_error : public t2n_exception { private: friend class boost::serialization::access; template - void serialize(Archive & ar, const unsigned int version) - { - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); - } + void serialize(Archive & ar, const unsigned int version); public: t2n_runtime_error(const std::string& _message)