X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fcontainer.cpp;h=0401af8cc265ce7a6663cc7bb39a41d78fc674b0;hp=bff9bb34801f8e5b840ff7a4eac8d860969dba53;hb=c72238fb7fc6eb081c2a0bc95fff369c760343f4;hpb=7087e18783f91d2b889e880462d1d1da24831c28 diff --git a/src/container.cpp b/src/container.cpp index bff9bb3..0401af8 100644 --- a/src/container.cpp +++ b/src/container.cpp @@ -17,7 +17,52 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include +#include +#include +#include + #include "container.hxx" +#include + 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