X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=src%2Fcontainer.cpp;h=47d0e49096786ef0d37aef8ec5c537d4e2df8566;hp=2973d5480b3ab40be299da87f80be5830ee65607;hb=d2cb39bbe6f8c4577c077c43abe2b9a23bd97a31;hpb=d184c64894e6c4f3adb9467078acfc9e7446664a diff --git a/src/container.cpp b/src/container.cpp index 2973d54..47d0e49 100644 --- a/src/container.cpp +++ b/src/container.cpp @@ -17,11 +17,46 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include +#include +#include +#include + #include "container.hxx" #include -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