00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _TypedResult_
00023 #define _TypedResult_
00024
00025 #include "Completion.h"
00026
00027 namespace qpid {
00028 namespace client {
00029
00035 template <class T> class TypedResult : public Completion
00036 {
00037 T result;
00038 bool decoded;
00039
00040 public:
00042 TypedResult(Future f, shared_ptr<SessionImpl> s) : Completion(f, s), decoded(false) {}
00043
00052 T& get()
00053 {
00054 if (!decoded) {
00055 future.decodeResult(result, *session);
00056 decoded = true;
00057 }
00058
00059 return result;
00060 }
00061 };
00062
00063 }}
00064
00065 #endif