namespace libt2n
{
-/** @brief contains the result (return value or exception) of a executed command
+/** @brief contains the result (return value as libt2n::result or an libt2n::t2n_exception) of a executed command
*/
class result_container
{
public:
result_container()
- { res=0; ex=0; }
+ : res(NULL)
+ , ex(NULL)
+ , result_type(regular)
+ {
+ }
result_container(result *_res)
- { set_result(_res); }
+ : res(_res)
+ , ex(NULL)
+ , result_type(regular)
+ {
+ }
+
result_container(t2n_exception *_ex)
- { set_exception(_ex); }
+ : res(NULL)
+ , ex(_ex)
+ , result_type(exception)
+ {
+ }
~result_container();
void set_result(result *_res)
{ res=_res; ex=0; result_type=regular; }
+
void set_exception(t2n_exception *_ex)
{ res=0; ex=_ex; result_type=exception; }
result* get_result(void);
+
+ bool has_exception()
+ { return (result_type==exception && ex != NULL); }
+ bool has_result()
+ { return (result_type==regular && res != NULL); }
};
-/** @brief contains a command
+/** @brief contains a libt2n::command
*/
class command_container
{
public:
command_container()
- { cmd=0; }
+ : cmd(NULL)
+ {}
+
command_container(command *_cmd)
- { cmd=_cmd; }
+ : cmd(_cmd)
+ {}
~command_container();
BOOST_CLASS_TRACKING(libt2n::result_container, boost::serialization::track_never)
BOOST_CLASS_TRACKING(libt2n::command_container, boost::serialization::track_never)
+#include "container.tcc"
+
#endif