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 "./internal/config.hpp"
00026 #include "./internal/export.hpp"
00027 #include "./internal/pn_unique_ptr.hpp"
00028 #include "./types.hpp"
00029 #include "./delivery_mode.hpp"
00030 #include "./terminus.hpp"
00031
00032 #include <vector>
00033 #include <string>
00034
00035 namespace proton {
00036
00037 class proton_handler;
00038 class sender;
00039 class source_options;
00040 class target_options;
00041
00063
00064 class sender_options {
00065 public:
00067 PN_CPP_EXTERN sender_options();
00068
00070 PN_CPP_EXTERN sender_options(const sender_options&);
00071
00072 PN_CPP_EXTERN ~sender_options();
00073
00075 PN_CPP_EXTERN sender_options& operator=(const sender_options&);
00076
00078 PN_CPP_EXTERN void update(const sender_options& other);
00079
00084 PN_CPP_EXTERN sender_options& handler(class messaging_handler&);
00085
00087 PN_CPP_EXTERN sender_options& delivery_mode(delivery_mode);
00088
00090 PN_CPP_EXTERN sender_options& auto_settle(bool);
00091
00093 PN_CPP_EXTERN sender_options& source(source_options &);
00094
00096 PN_CPP_EXTERN sender_options& target(target_options &);
00097
00099 private:
00100 void apply(sender&) const;
00101
00102 class impl;
00103 internal::pn_unique_ptr<impl> impl_;
00104
00105 friend class sender;
00107 };
00108
00109 }
00110
00111 #endif // PROTON_SENDER_OPTIONS_HPP