t2n_exception.hxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __LIBT2N_T2N_EXCEPTION
00023 #define __LIBT2N_T2N_EXCEPTION
00024
00025 #include <stdexcept>
00026 #include <string>
00027
00028 #include <boost/serialization/serialization.hpp>
00029
00030 namespace boost {
00031 namespace serialization {
00032
00033
00034 template<class Archive>
00035 void serialize(Archive & ar, std::exception & g, const unsigned int version)
00036 {
00037 }
00038
00039 }
00040 }
00041
00042 namespace libt2n
00043 {
00048 class t2n_exception : public std::exception
00049 {
00050 private:
00051 std::string message;
00052
00053 friend class boost::serialization::access;
00054 template<class Archive>
00055 void serialize(Archive & ar, const unsigned int version);
00056
00057 public:
00058 t2n_exception(const std::string& _message)
00059 { message=_message; }
00060
00061 t2n_exception()
00062 { }
00063
00064 virtual const char* what() const throw()
00065 { return message.c_str(); }
00066
00067 virtual t2n_exception* clone() const
00068 { return new t2n_exception(*this); }
00069
00070 virtual ~t2n_exception() throw()
00071 {}
00072
00073 virtual void do_throw()
00074 { throw *this; }
00075 };
00076
00078 class t2n_communication_error : public t2n_exception
00079 {
00080 private:
00081 friend class boost::serialization::access;
00082 template<class Archive>
00083 void serialize(Archive & ar, const unsigned int version);
00084
00085 public:
00086 t2n_communication_error(const std::string& _message)
00087 : t2n_exception(_message)
00088 { }
00089
00090 t2n_communication_error()
00091 { }
00092
00093 t2n_exception* clone() const
00094 { return new t2n_communication_error(*this); }
00095
00096 void do_throw()
00097 { throw *this; }
00098 };
00099
00101 class t2n_connect_error : public t2n_communication_error
00102 {
00103 private:
00104 friend class boost::serialization::access;
00105 template<class Archive>
00106 void serialize(Archive & ar, const unsigned int version);
00107
00108 public:
00109 t2n_connect_error(const std::string& _message)
00110 : t2n_communication_error(_message)
00111 { }
00112
00113 t2n_connect_error()
00114 { }
00115
00116 t2n_exception* clone() const
00117 { return new t2n_connect_error(*this); }
00118
00119 void do_throw()
00120 { throw *this; }
00121 };
00122
00124 class t2n_server_error : public t2n_communication_error
00125 {
00126 private:
00127 friend class boost::serialization::access;
00128 template<class Archive>
00129 void serialize(Archive & ar, const unsigned int version);
00130
00131 public:
00132 t2n_server_error(const std::string& _message)
00133 : t2n_communication_error(_message)
00134 { }
00135
00136 t2n_server_error()
00137 { }
00138
00139 t2n_exception* clone() const
00140 { return new t2n_server_error(*this); }
00141
00142 void do_throw()
00143 { throw *this; }
00144 };
00145
00147 class t2n_transfer_error : public t2n_communication_error
00148 {
00149 private:
00150 friend class boost::serialization::access;
00151 template<class Archive>
00152 void serialize(Archive & ar, const unsigned int version);
00153
00154 public:
00155 t2n_transfer_error(const std::string& _message)
00156 : t2n_communication_error(_message)
00157 { }
00158
00159 t2n_transfer_error()
00160 { }
00161
00162 t2n_exception* clone() const
00163 { return new t2n_transfer_error(*this); }
00164
00165 void do_throw()
00166 { throw *this; }
00167 };
00168
00170 class t2n_version_mismatch : public t2n_communication_error
00171 {
00172 private:
00173 friend class boost::serialization::access;
00174 template<class Archive>
00175 void serialize(Archive & ar, const unsigned int version);
00176
00177 public:
00178 t2n_version_mismatch(const std::string& _message)
00179 : t2n_communication_error(_message)
00180 { }
00181
00182 t2n_version_mismatch()
00183 { }
00184
00185 t2n_exception* clone() const
00186 { return new t2n_version_mismatch(*this); }
00187
00188 void do_throw()
00189 { throw *this; }
00190 };
00191
00193 class t2n_command_error : public t2n_exception
00194 {
00195 private:
00196 friend class boost::serialization::access;
00197 template<class Archive>
00198 void serialize(Archive & ar, const unsigned int version);
00199
00200 public:
00201 t2n_command_error(const std::string& _message)
00202 : t2n_exception(_message)
00203 { }
00204
00205 t2n_command_error()
00206 { }
00207
00208 t2n_exception* clone() const
00209 { return new t2n_command_error(*this); }
00210
00211 void do_throw()
00212 { throw *this; }
00213 };
00214
00216 class t2n_serialization_error : public t2n_exception
00217 {
00218 private:
00219 friend class boost::serialization::access;
00220 template<class Archive>
00221 void serialize(Archive & ar, const unsigned int version);
00222
00223 public:
00224 t2n_serialization_error(const std::string& _message)
00225 : t2n_exception(_message)
00226 { }
00227
00228 t2n_serialization_error()
00229 { }
00230
00231 t2n_exception* clone() const
00232 { return new t2n_serialization_error(*this); }
00233
00234 void do_throw()
00235 { throw *this; }
00236 };
00237
00243 class t2n_runtime_error : public t2n_exception
00244 {
00245 private:
00246 friend class boost::serialization::access;
00247 template<class Archive>
00248 void serialize(Archive & ar, const unsigned int version);
00249
00250 public:
00251 t2n_runtime_error(const std::string& _message)
00252 : t2n_exception(_message)
00253 { }
00254
00255 t2n_runtime_error()
00256 { }
00257
00258 t2n_exception* clone() const
00259 { return new t2n_runtime_error(*this); }
00260
00261 void do_throw()
00262 { throw *this; }
00263 };
00264
00265 }
00266
00267 #include "t2n_exception.tcc"
00268
00269 #endif