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 #include <string>
00030
00033
00034 namespace proton {
00035
00057 class sender_options {
00058 public:
00060 PN_CPP_EXTERN sender_options();
00061
00063 PN_CPP_EXTERN sender_options(const sender_options&);
00064
00065 PN_CPP_EXTERN ~sender_options();
00066
00068 PN_CPP_EXTERN sender_options& operator=(const sender_options&);
00069
00071 PN_CPP_EXTERN void update(const sender_options& other);
00072
00077 PN_CPP_EXTERN sender_options& handler(class messaging_handler&);
00078
00080 PN_CPP_EXTERN sender_options& delivery_mode(delivery_mode);
00081
00083 PN_CPP_EXTERN sender_options& auto_settle(bool);
00084
00086 PN_CPP_EXTERN sender_options& source(const source_options&);
00087
00089 PN_CPP_EXTERN sender_options& target(const target_options&);
00090
00092 PN_CPP_EXTERN sender_options& name(const std::string& name);
00093
00094 private:
00095 void apply(sender&) const;
00096 const std::string* get_name() const;
00097
00098 class impl;
00099 internal::pn_unique_ptr<impl> impl_;
00100
00102 friend class sender;
00103 friend class session;
00105 };
00106
00107 }
00108
00109 #endif // PROTON_SENDER_OPTIONS_HPP