libt2n: (tomj) fix uninitialized variable "result_type" in result_container
[libt2n] / src / container.cpp
index bff9bb3..0401af8 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
+{
+
+
+/// deletes the carried result or exception objects
+result_container::~result_container()
+{
+    if (res)
+        delete res;
+    if (ex)
+        delete ex;
+
+    res = NULL;
+    ex = NULL;
+}
+
+/** @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;
+
+    cmd = NULL;
+}
+
+} // namespace libt2n