00001 #ifndef PROTON_TRANSFER_HPP
00002 #define PROTON_TRANSFER_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "./fwd.hpp"
00026 #include "./internal/export.hpp"
00027 #include "./internal/object.hpp"
00028
00029 #include <proton/disposition.h>
00030 #include <iosfwd>
00031
00034
00035 struct pn_delivery_t;
00036
00037 namespace proton {
00038
00040 class transfer : public internal::object<pn_delivery_t> {
00042 transfer(pn_delivery_t* d) : internal::object<pn_delivery_t>(d) {}
00044
00045 public:
00047 transfer() : internal::object<pn_delivery_t>(0) {}
00048
00050 enum state {
00051 NONE = 0,
00052 RECEIVED = PN_RECEIVED,
00053 ACCEPTED = PN_ACCEPTED,
00054 REJECTED = PN_REJECTED,
00055 RELEASED = PN_RELEASED,
00056 MODIFIED = PN_MODIFIED
00057 };
00058
00060 PN_CPP_EXTERN enum state state() const;
00061
00063 PN_CPP_EXTERN class session session() const;
00064
00066 PN_CPP_EXTERN class connection connection() const;
00067
00069 PN_CPP_EXTERN class work_queue& work_queue() const;
00070
00072 PN_CPP_EXTERN class container &container() const;
00073
00075 PN_CPP_EXTERN void settle();
00076
00078 PN_CPP_EXTERN bool settled() const;
00079
00081 friend class internal::factory<transfer>;
00083 };
00084
00086 PN_CPP_EXTERN std::string to_string(enum transfer::state);
00088 PN_CPP_EXTERN std::ostream& operator<<(std::ostream&, const enum transfer::state);
00089
00090 }
00091
00092 #endif // PROTON_TRANSFER_HPP