libt2n: (gerd) finish server callbacks
[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_parameter_error)
37 BOOST_CLASS_EXPORT(libt2n::t2n_serialization_error)
38 BOOST_CLASS_EXPORT(libt2n::t2n_runtime_error)
39
40 namespace libt2n
41 {
42
43 template<class Archive>
44 void t2n_exception::serialize(Archive & ar, const unsigned int version)
45 {
46     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(exception);
47     ar & BOOST_SERIALIZATION_NVP(message);
48 }
49
50 template<class Archive>
51 void t2n_communication_error::serialize(Archive & ar, const unsigned int version)
52 {
53     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
54 }
55
56 template<class Archive>
57 void t2n_connect_error::serialize(Archive & ar, const unsigned int version)
58 {
59     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
60 }
61
62 template<class Archive>
63 void t2n_server_error::serialize(Archive & ar, const unsigned int version)
64 {
65     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
66 }
67
68 template<class Archive>
69 void t2n_transfer_error::serialize(Archive & ar, const unsigned int version)
70 {
71     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
72 }
73
74 template<class Archive>
75 void t2n_version_mismatch::serialize(Archive & ar, const unsigned int version)
76 {
77     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error);
78 }
79
80 template<class Archive>
81 void t2n_command_error::serialize(Archive & ar, const unsigned int version)
82 {
83     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
84 }
85
86 template<class Archive>
87 void t2n_parameter_error::serialize(Archive & ar, const unsigned int version)
88 {
89     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
90 }
91
92 template<class Archive>
93 void t2n_serialization_error::serialize(Archive & ar, const unsigned int version)
94 {
95     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
96 }
97
98 template<class Archive>
99 void t2n_runtime_error::serialize(Archive & ar, const unsigned int version)
100 {
101     ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception);
102 }
103
104 } // namespace libt2n