00001 #ifndef __GEMFIRE_CACHELOADER_H__ 00002 #define __GEMFIRE_CACHELOADER_H__ 00003 /*========================================================================= 00004 * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved. 00005 * This product is protected by U.S. and international copyright 00006 * and intellectual property laws. Pivotal products are covered by 00007 * more patents listed at http://www.pivotal.io/patents. 00008 *======================================================================== 00009 */ 00010 00015 #include "gfcpp_globals.hpp" 00016 #include "gf_types.hpp" 00017 #include "CacheableKey.hpp" 00018 #include "Cacheable.hpp" 00019 #include "UserData.hpp" 00020 00021 00022 namespace gemfire { 00023 00043 class CPPCACHE_EXPORT CacheLoader 00044 : public SharedBase 00045 { 00046 public: 00060 virtual CacheablePtr load(const RegionPtr& rp, 00061 const CacheableKeyPtr& key, 00062 const UserDataPtr& aCallbackArgument) = 0; 00063 00079 virtual void close( const RegionPtr& rp ); 00080 00081 virtual ~CacheLoader( ); 00082 00083 protected: 00084 00085 CacheLoader( ); 00086 00087 protected: 00088 // never implemented. 00089 CacheLoader( const CacheLoader& other ); 00090 void operator = ( const CacheLoader& other ); 00091 00092 }; 00093 00094 } //namespace 00095 #endif //ifndef __GEMFIRE_CACHELOADER_H__