(no commit message)
[libt2n] / src / t2n_exception.cpp
1 /***************************************************************************
2  *   Copyright (C) 2006 by Gerd v. Egidy                                   *
3  *   gve@intra2net.com                                                     *
4  *                                                                         *
5  *   This library is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU Lesser General Public License version   *
7  *   2.1 as published by the Free Software Foundation.                     *
8  *                                                                         *
9  *   This library is distributed in the hope that it will be useful,       *
10  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12  *   GNU Lesser General Public License for more details.                   *
13  *                                                                         *
14  *   You should have received a copy of the GNU Lesser General Public      *
15  *   License along with this program; if not, write to the                 *
16  *   Free Software Foundation, Inc.,                                       *
17  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18  ***************************************************************************/
19
20 #include <boost/archive/binary_oarchive.hpp>
21 #include <boost/archive/binary_iarchive.hpp>
22 #include <boost/archive/xml_oarchive.hpp>
23 #include <boost/archive/xml_iarchive.hpp>
24
25 #include "t2n_exception.hxx"
26
27 #include <boost/serialization/export.hpp>
28
29 BOOST_CLASS_EXPORT(libt2n::t2n_exception)
30 BOOST_CLASS_EXPORT(libt2n::t2n_communication_error)
31 BOOST_CLASS_EXPORT(libt2n::t2n_connect_error)
32 BOOST_CLASS_EXPORT(libt2n::t2n_server_error)
33 BOOST_CLASS_EXPORT(libt2n::t2n_transfer_error)
34 BOOST_CLASS_EXPORT(libt2n::t2n_version_mismatch)
35 BOOST_CLASS_EXPORT(libt2n::t2n_command_error)
36 BOOST_CLASS_EXPORT(libt2n::t2n_serialization_error)
37 BOOST_CLASS_EXPORT(libt2n::t2n_runtime_error)
38
39 namespace libt2n
40 {
41
42 template<class Archive>
43 void t2n_exception::serialize(Archive & ar, const unsigned int version)
44 {
45     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(exception);
46     ar & BOOST_SERIALIZATION_NVP(message);
47 }
48
49 template<class Archive>
50 void t2n_communication_error::serialize(Archive & ar, const unsigned int version)
51 {
52     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
53 }
54
55 template<class Archive>
56 void t2n_connect_error::serialize(Archive & ar, const unsigned int version)
57 {
58     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
59 }
60
61 template<class Archive>
62 void t2n_server_error::serialize(Archive & ar, const unsigned int version)
63 {
64     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
65 }
66
67 template<class Archive>
68 void t2n_transfer_error::serialize(Archive & ar, const unsigned int version)
69 {
70     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
71 }
72
73 template<class Archive>
74 void t2n_version_mismatch::serialize(Archive & ar, const unsigned int version)
75 {
76     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
77 }
78
79 template<class Archive>
80 void t2n_command_error::serialize(Archive & ar, const unsigned int version)
81 {
82     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
83 }
84
85 template<class Archive>
86 void t2n_serialization_error::serialize(Archive & ar, const unsigned int version)
87 {
88     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
89 }
90
91 template<class Archive>
92 void t2n_runtime_error::serialize(Archive & ar, const unsigned int version)
93 {
94     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
95 }
96
97 } // namespace libt2n