Oracle Coherence for C++ API
Release 3.7.1.0
E22845-01
00001 /* 00002 * PreloadRequest.hpp 00003 * 00004 * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. 00005 * 00006 * Oracle is a registered trademarks of Oracle Corporation and/or its 00007 * affiliates. 00008 * 00009 * This software is the confidential and proprietary information of Oracle 00010 * Corporation. You shall not disclose such confidential and proprietary 00011 * information and shall use it only in accordance with the terms of the 00012 * license agreement you entered into with Oracle. 00013 * 00014 * This notice may not be removed or altered. 00015 */ 00016 #ifndef COH_PRELOAD_REQUEST_HPP 00017 #define COH_PRELOAD_REQUEST_HPP 00018 00019 #include "coherence/lang.ns" 00020 00021 #include "coherence/io/pof/PofReader.hpp" 00022 #include "coherence/io/pof/PofWriter.hpp" 00023 #include "coherence/io/pof/PortableObject.hpp" 00024 #include "coherence/util/InvocableMap.hpp" 00025 #include "coherence/util/ValueExtractor.hpp" 00026 #include "coherence/util/processor/AbstractProcessor.hpp" 00027 00028 COH_OPEN_NAMESPACE3(coherence,util, processor) 00029 00030 using coherence::io::pof::PofReader; 00031 using coherence::io::pof::PofWriter; 00032 using coherence::io::pof::PortableObject; 00033 using coherence::util::InvocableMap; 00034 using coherence::util::ValueExtractor; 00035 00036 00037 /** 00038 * PreloadRequest is a simple EntryProcessor that performs a 00039 * InvocableMap::Entry#getValue() call. No results are reported back to the 00040 * caller. 00041 * 00042 * The PreloadRequest process provides a means to "pre-load" an entry or a 00043 * collection of entries into the cache using the cache's loader without 00044 * incurring the cost of sending the value(s) over the network. If the 00045 * corresponding entry (or entries) already exists in the cache, or if the 00046 * cache does not have a loader, then invoking this EntryProcessor has no 00047 * effect. 00048 * 00049 * @author tb 2008.04.28 00050 */ 00051 class COH_EXPORT PreloadRequest 00052 : public class_spec<PreloadRequest, 00053 extends<AbstractProcessor>, 00054 implements<PortableObject> > 00055 { 00056 friend class factory<PreloadRequest>; 00057 00058 // ----- constructors --------------------------------------------------- 00059 00060 protected: 00061 /** 00062 * Construct a PreloadRequest. 00063 */ 00064 PreloadRequest(); 00065 00066 00067 // ----- InvocableMap::EntryProcessor interface ------------------------- 00068 00069 public: 00070 /** 00071 * {@inheritDoc} 00072 */ 00073 virtual Object::Holder process( 00074 InvocableMap::Entry::Handle hEntry) const; 00075 00076 /** 00077 * {@inheritDoc 00078 */ 00079 virtual Map::View processAll(Set::View vsetEntries) const; 00080 00081 00082 // ----- PortableObject interface --------------------------------------- 00083 00084 public: 00085 /** 00086 * {@inheritDoc} 00087 */ 00088 virtual void readExternal(PofReader::Handle hIn); 00089 00090 /** 00091 * {@inheritDoc} 00092 */ 00093 virtual void writeExternal(PofWriter::Handle hOut) const; 00094 00095 00096 // ----- Object interface ----------------------------------------------- 00097 00098 public: 00099 /** 00100 * {@inheritDoc} 00101 */ 00102 virtual bool equals(Object::View v) const; 00103 00104 /** 00105 * {@inheritDoc} 00106 */ 00107 virtual size32_t hashCode() const; 00108 00109 }; 00110 00111 COH_CLOSE_NAMESPACE3 00112 00113 #endif // COH_PRELOAD_REQUEST_HPP