get rid of some unused warnings
[libt2n] / src / container.cpp
index bff9bb3..a3c9f31 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 "container.hxx"
 
+#include <boost/serialization/export.hpp>
+
 BOOST_CLASS_EXPORT(libt2n::result_container)
 BOOST_CLASS_EXPORT(libt2n::command_container)
+
+namespace libt2n
+{
+
+template<class Archive>
+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()
+{
+    if (res)
+        delete res;
+    if (ex)
+        delete ex;
+}
+
+/** @brief returns the result or throw the carried exception.
+            ATTENTION: the result object is deleted in the destructor
+*/
+result* result_container::get_result(void)
+{
+    if (result_type==exception)
+        ex->do_throw();
+    return res;
+}
+
+template<class Archive>
+void command_container::serialize(Archive & ar, const unsigned int /* version */)
+{
+    ar & BOOST_SERIALIZATION_NVP(cmd);
+}
+
+/// deletes the carried command
+command_container::~command_container()
+{
+    if (cmd)
+        delete cmd;
+}
+
+} // namespace libt2n