00001 /*00002 *00003 * Licensed to the Apache Software Foundation (ASF) under one00004 * or more contributor license agreements. See the NOTICE file00005 * distributed with this work for additional information00006 * regarding copyright ownership. The ASF licenses this file00007 * to you under the Apache License, Version 2.0 (the00008 * "License"); you may not use this file except in compliance00009 * with the License. You may obtain a copy of the License at00010 *00011 * http://www.apache.org/licenses/LICENSE-2.000012 *00013 * Unless required by applicable law or agreed to in writing,00014 * software distributed under the License is distributed on an00015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY00016 * KIND, either express or implied. See the License for the00017 * specific language governing permissions and limitations00018 * under the License.00019 *00020 */00021
00022 #ifndef _TypedResult_00023 #define _TypedResult_00024
00025 #include "qpid/client/Completion.h"00026 #include "qpid/framing/StructHelper.h"00027
00028 namespace qpid {
00029 namespace client {
00030
00036template <class T> class TypedResult : publicCompletion00037 {
00038 T result;
00039 bool decoded;
00040
00041 public:
00043TypedResult(constCompletion& c) : Completion(c), decoded(false) {}
00044
00053 T& get() {
00054 if (!decoded) {
00055 framing::StructHelper helper;
00056 helper.decode(result, getResult());
00057 decoded = true;
00058 }
00059 return result;
00060 }
00061 };
00062
00063 }}
00064
00065 #endif
Qpid C++ API Reference
Generated on Mon Jun 7 17:49:07 2010 for Qpid C++ Client API by 1.6.2-20100208