#include <string>
#include <boost/serialization/serialization.hpp>
-#include <boost/serialization/export.hpp>
namespace boost {
namespace serialization {
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
{ throw *this; }
};
+/// illegal libt2n option set
+class t2n_parameter_error : public t2n_exception
+{
+ private:
+ friend class boost::serialization::access;
+ template<class Archive>
+ void serialize(Archive & ar, const unsigned int version);
+
+ public:
+ t2n_parameter_error(const std::string& _message)
+ : t2n_exception(_message)
+ { }
+
+ t2n_parameter_error()
+ { }
+
+ t2n_exception* clone() const
+ { return new t2n_parameter_error(*this); }
+
+ void do_throw()
+ { throw *this; }
+};
+
/// error serializing or deserializing a libt2n command packet
class t2n_serialization_error : public t2n_exception
{
private:
friend class boost::serialization::access;
template<class Archive>
- 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)
private:
friend class boost::serialization::access;
template<class Archive>
- 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)