libt2n: (reinhard) compile fixes.
[libt2n] / src / container.cpp
index 2973d54..47d0e49 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>
 
-using namespace libt2n;
+BOOST_CLASS_EXPORT(libt2n::result_container)
+BOOST_CLASS_EXPORT(libt2n::command_container)
+
+namespace libt2n
+{
+
+
+/// 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;
+}
+
+/// deletes the carried command
+command_container::~command_container()
+{
+    if (cmd)
+        delete cmd;
+}
 
-BOOST_CLASS_EXPORT(result_container)
-BOOST_CLASS_EXPORT(command_container)
+} // namespace libt2n