From d2cb39bbe6f8c4577c077c43abe2b9a23bd97a31 Mon Sep 17 00:00:00 2001 From: Reinhard Pfau Date: Fri, 1 Aug 2008 14:32:58 +0000 Subject: [PATCH] libt2n: (reinhard) compile fixes. --- src/Makefile.am | 3 +- src/container.cpp | 17 --------------- src/container.hxx | 2 + src/container.tcc | 43 +++++++++++++++++++++++++++++++++++++++ src/t2n_exception.cpp | 54 ------------------------------------------------- src/t2n_exception.hxx | 2 + 6 files changed, 49 insertions(+), 72 deletions(-) create mode 100644 src/container.tcc diff --git a/src/Makefile.am b/src/Makefile.am index 204c59d..effba0a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -16,4 +16,5 @@ libt2n_la_LDFLAGS = -version-info 1:0:0 pkginclude_HEADERS = client.hxx client_wrapper.hxx command.hxx \ command_client.hxx command_server.hxx connection.hxx container.hxx log.hxx server.hxx \ socket_client.hxx socket_handler.hxx socket_server.hxx socket_wrapper.hxx \ - t2n_exception.hxx types.hxx + t2n_exception.hxx types.hxx \ + container.tcc t2n_exception.tcc diff --git a/src/container.cpp b/src/container.cpp index a3c9f31..47d0e49 100644 --- a/src/container.cpp +++ b/src/container.cpp @@ -32,17 +32,6 @@ BOOST_CLASS_EXPORT(libt2n::command_container) namespace libt2n { -template -void result_container::serialize(Archive & ar, const unsigned int /* version */) -{ - // When the class Archive corresponds to an output archive, the - // & operator is defined similar to <<. Likewise, when the class Archive - // is a type of input archive the & operator is defined similar to >>. - - ar & BOOST_SERIALIZATION_NVP(result_type); - ar & BOOST_SERIALIZATION_NVP(res); - ar & BOOST_SERIALIZATION_NVP(ex); -} /// deletes the carried result or exception objects result_container::~result_container() @@ -63,12 +52,6 @@ result* result_container::get_result(void) return res; } -template -void command_container::serialize(Archive & ar, const unsigned int /* version */) -{ - ar & BOOST_SERIALIZATION_NVP(cmd); -} - /// deletes the carried command command_container::~command_container() { diff --git a/src/container.hxx b/src/container.hxx index f869166..478c464 100644 --- a/src/container.hxx +++ b/src/container.hxx @@ -100,5 +100,7 @@ class command_container BOOST_CLASS_TRACKING(libt2n::result_container, boost::serialization::track_never) BOOST_CLASS_TRACKING(libt2n::command_container, boost::serialization::track_never) +#include "container.tcc" + #endif diff --git a/src/container.tcc b/src/container.tcc new file mode 100644 index 0000000..f8064bd --- /dev/null +++ b/src/container.tcc @@ -0,0 +1,43 @@ +/*************************************************************************** + * Copyright (C) 2006 by Gerd v. Egidy * + * gve@intra2net.com * + * * + * This library is free software; you can redistribute it and/or modify * + * it under the terms of the GNU Lesser General Public License version * + * 2.1 as published by the Free Software Foundation. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +namespace libt2n +{ + +template +void result_container::serialize(Archive & ar, const unsigned int /* version */) +{ + // When the class Archive corresponds to an output archive, the + // & operator is defined similar to <<. Likewise, when the class Archive + // is a type of input archive the & operator is defined similar to >>. + + ar & BOOST_SERIALIZATION_NVP(result_type); + ar & BOOST_SERIALIZATION_NVP(res); + ar & BOOST_SERIALIZATION_NVP(ex); +} + +template +void command_container::serialize(Archive & ar, const unsigned int /* version */) +{ + ar & BOOST_SERIALIZATION_NVP(cmd); +} + + + +} diff --git a/src/t2n_exception.cpp b/src/t2n_exception.cpp index 1aae5c4..ca83dfa 100644 --- a/src/t2n_exception.cpp +++ b/src/t2n_exception.cpp @@ -39,59 +39,5 @@ BOOST_CLASS_EXPORT(libt2n::t2n_runtime_error) namespace libt2n { -template -void t2n_exception::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(exception); - ar & BOOST_SERIALIZATION_NVP(message); -} - -template -void t2n_communication_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); -} - -template -void t2n_connect_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); -} - -template -void t2n_server_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); -} - -template -void t2n_transfer_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); -} - -template -void t2n_version_mismatch::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_communication_error); -} - -template -void t2n_command_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); -} - -template -void t2n_serialization_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); -} - -template -void t2n_runtime_error::serialize(Archive & ar, const unsigned int version) -{ - ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(t2n_exception); -} } // namespace libt2n diff --git a/src/t2n_exception.hxx b/src/t2n_exception.hxx index 121d482..0440f05 100644 --- a/src/t2n_exception.hxx +++ b/src/t2n_exception.hxx @@ -261,4 +261,6 @@ class t2n_runtime_error : public t2n_exception } // namespace libt2n +#include "t2n_exception.tcc" + #endif -- 1.7.1