00001 #ifndef __GEMFIRE_RESULTCOLLECTOR_H__ 00002 #define __GEMFIRE_RESULTCOLLECTOR_H__ 00003 /*========================================================================= 00004 * (c) Copyright 2002-2007, GemStone Systems, Inc. All Rights Reserved. 00005 * 1260 NW Waterhouse Ave., Suite 200, Beaverton, OR 97006 00006 *======================================================================== 00007 */ 00008 00009 #include "gfcpp_globals.hpp" 00010 #include "gf_types.hpp" 00011 #include "SharedPtr.hpp" 00012 #include "VectorT.hpp" 00013 #include "CacheableBuiltins.hpp" 00014 00019 namespace gemfire { 00044 class CPPCACHE_EXPORT ResultCollector 00045 : public SharedBase 00046 { 00050 public: 00051 ResultCollector(); 00052 virtual ~ResultCollector(); 00060 virtual CacheableVectorPtr getResult(uint32_t timeout = DEFAULT_QUERY_RESPONSE_TIMEOUT); 00067 virtual void addResult(CacheablePtr& resultOfSingleExecution); 00072 virtual void endResults(); 00079 virtual void clearResults(); 00080 00081 private: 00082 CacheableVectorPtr m_resultList; 00083 volatile bool m_isResultReady; 00084 }; 00085 00086 } //namespace gemfire 00087 #endif //ifndef __GEMFIRE_RESULTCOLLECTOR_H__