00001 #ifndef PROTON_SENDER_OPTIONS_HPP
00002 #define PROTON_SENDER_OPTIONS_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/pn_unique_ptr.hpp"
00028 #include "./delivery_mode.hpp"
00029
00032
00033 namespace proton {
00034
00056 class sender_options {
00057 public:
00059 PN_CPP_EXTERN sender_options();
00060
00062 PN_CPP_EXTERN sender_options(const sender_options&);
00063
00064 PN_CPP_EXTERN ~sender_options();
00065
00067 PN_CPP_EXTERN sender_options& operator=(const sender_options&);
00068
00070 PN_CPP_EXTERN void update(const sender_options& other);
00071
00076 PN_CPP_EXTERN sender_options& handler(class messaging_handler&);
00077
00079 PN_CPP_EXTERN sender_options& delivery_mode(delivery_mode);
00080
00082 PN_CPP_EXTERN sender_options& auto_settle(bool);
00083
00085 PN_CPP_EXTERN sender_options& source(const source_options&);
00086
00088 PN_CPP_EXTERN sender_options& target(const target_options&);
00089
00090 private:
00091 void apply(sender&) const;
00092
00093 class impl;
00094 internal::pn_unique_ptr<impl> impl_;
00095
00097 friend class sender;
00099 };
00100
00101 }
00102
00103 #endif // PROTON_SENDER_OPTIONS_HPP