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
00033
00034 struct pn_delivery_t;
00035
00036 namespace proton {
00037
00039 class transfer : public internal::object<pn_delivery_t> {
00041 transfer(pn_delivery_t* d) : internal::object<pn_delivery_t>(d) {}
00043
00044 public:
00046 transfer() : internal::object<pn_delivery_t>(0) {}
00047
00049 enum state {
00050 NONE = 0,
00051 RECEIVED = PN_RECEIVED,
00052 ACCEPTED = PN_ACCEPTED,
00053 REJECTED = PN_REJECTED,
00054 RELEASED = PN_RELEASED,
00055 MODIFIED = PN_MODIFIED
00056 };
00057
00059 PN_CPP_EXTERN enum state state() const;
00060
00062 PN_CPP_EXTERN class session session() const;
00063
00065 PN_CPP_EXTERN class connection connection() const;
00066
00068 PN_CPP_EXTERN class work_queue& work_queue() const;
00069
00071 PN_CPP_EXTERN class container &container() const;
00072
00074 PN_CPP_EXTERN void settle();
00075
00077 PN_CPP_EXTERN bool settled() const;
00078
00080 friend class internal::factory<transfer>;
00082 };
00083
00084 }
00085
00086 #endif // PROTON_TRANSFER_HPP