00001 #ifndef PROTON_RETURNED_HPP
00002 #define PROTON_RETURNED_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/export.hpp"
00026 #include "./internal/object.hpp"
00027
00028 #include "./connection.hpp"
00029 #include "./receiver.hpp"
00030 #include "./sender.hpp"
00031
00034
00035 namespace proton {
00036
00037 namespace internal {
00038 class returned_factory;
00039 }
00040
00050 template <class T>
00051 class PN_CPP_CLASS_EXTERN returned {
00052 public:
00054 PN_CPP_EXTERN returned(const returned<T>&);
00055
00059 PN_CPP_EXTERN operator T() const;
00060
00061 private:
00062 typename T::pn_type* ptr_;
00063 returned(typename T::pn_type*);
00064 returned& operator=(const returned&);
00065 friend class internal::returned_factory;
00066 };
00067
00068 }
00069
00070 #endif