00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PEEKABOT_CLIENT_STATUS_HH_INCLUDED
00012 #define PEEKABOT_CLIENT_STATUS_HH_INCLUDED
00013
00014
00015 #include <string>
00016 #include <stdexcept>
00017 #include <boost/shared_ptr.hpp>
00018
00019 #include "../Visibility.hh"
00020 #include "OperationStatus.hh"
00021
00022
00023 namespace peekabot
00024 {
00025 namespace client
00026 {
00036 class PEEKABOT_API Status
00037 {
00038 public:
00043 Status();
00044
00045
00053 Status(boost::shared_ptr<OperationStatus> status);
00054
00055
00056 virtual ~Status();
00057
00058
00059 Status &operator=(
00060 boost::shared_ptr<OperationStatus> status);
00061
00070 OperationOutcome get_outcome() const;
00071
00080 bool has_completed() const;
00081
00091 bool succeeded() const;
00092
00106 bool failed() const;
00107
00122 bool wait_until_completed() const;
00123
00131 std::string get_error_message() const;
00132
00133 private:
00141 boost::shared_ptr<OperationStatus> m_status;
00142 };
00143 }
00144 }
00145
00146
00147 #endif // PEEKABOT_CLIENT_STATUS_HH_INCLUDED