libt2n: (gerd) small fixes, hello unit tests
[libt2n] / src / t2n_exception.cpp
index 37c71b0..1aae5c4 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
+#include <boost/archive/binary_oarchive.hpp>
+#include <boost/archive/binary_iarchive.hpp>
+#include <boost/archive/xml_oarchive.hpp>
+#include <boost/archive/xml_iarchive.hpp>
+
 #include "t2n_exception.hxx"
+
 #include <boost/serialization/export.hpp>
 
 BOOST_CLASS_EXPORT(libt2n::t2n_exception)
@@ -29,3 +35,63 @@ BOOST_CLASS_EXPORT(libt2n::t2n_version_mismatch)
 BOOST_CLASS_EXPORT(libt2n::t2n_command_error)
 BOOST_CLASS_EXPORT(libt2n::t2n_serialization_error)
 BOOST_CLASS_EXPORT(libt2n::t2n_runtime_error)
+
+namespace libt2n
+{
+
+template<class Archive>
+void t2n_exception::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(exception);
+    ar & BOOST_SERIALIZATION_NVP(message);
+}
+
+template<class Archive>
+void t2n_communication_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
+}
+
+template<class Archive>
+void t2n_connect_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
+}
+
+template<class Archive>
+void t2n_server_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
+}
+
+template<class Archive>
+void t2n_transfer_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
+}
+
+template<class Archive>
+void t2n_version_mismatch::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
+}
+
+template<class Archive>
+void t2n_command_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
+}
+
+template<class Archive>
+void t2n_serialization_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
+}
+
+template<class Archive>
+void t2n_runtime_error::serialize(Archive & ar, const unsigned int version)
+{
+    ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
+}
+
+} // namespace libt2n