Oracle Coherence for C++ API
Release 3.6.0.0

E15728-01

coherence/util/extractor/EntryExtractor.hpp

00001 /*
00002 * EntryExtractor.hpp
00003 *
00004 * Copyright (c) 2000, 2010, 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_ENTRY_EXTRACTOR_HPP
00017 #define COH_ENTRY_EXTRACTOR_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/Map.hpp"
00025 #include "coherence/util/extractor/AbstractExtractor.hpp"
00026 
00027 COH_OPEN_NAMESPACE3(coherence,util,extractor)
00028 
00029 using coherence::io::pof::PofReader;
00030 using coherence::io::pof::PofWriter;
00031 using coherence::util::QueryMap;
00032 
00033 
00034 /**
00035 * The EntryExtractor is a base abstract class for special purpose custom
00036 * ValueExtractor implementations. It allows them to extract a desired value
00037 * using all available information on the corresponding QueryMap.Entry object
00038 * and is intended to be used in advanced custom scenarios, when application
00039 * code needs to look at both key and value at the same time or can make some
00040 * very specific assumptions regarding to the implementation details of the
00041 * underlying Entry object.
00042 *
00043 * @author nsa 2008.08.07
00044 */
00045 class COH_EXPORT EntryExtractor
00046     : public abstract_spec<EntryExtractor,
00047         extends<AbstractExtractor>,
00048         implements<PortableObject> >
00049     {
00050     // ----- constructors ---------------------------------------------------
00051 
00052     protected:
00053         /**
00054         * Default constructor (for backward compatibility).
00055         */
00056         EntryExtractor();
00057 
00058         /**
00059         * Construct an EntryExtractor based on the entry extraction target.
00060         *
00061         * @param nTarget  one of the {@link #VALUE} or {@link #KEY} values
00062         *
00063         * @since Coherence 3.5
00064         */
00065         EntryExtractor(int32_t nTarget);
00066 
00067 
00068     // ----- PortableObject interface ---------------------------------------
00069 
00070     public:
00071         /**
00072         * {@inheritDoc}
00073         */
00074         virtual void readExternal(PofReader::Handle hIn);
00075 
00076         /**
00077         * {@inheritDoc}
00078         */
00079         virtual void writeExternal(PofWriter::Handle hOut) const;
00080     };
00081 
00082 COH_CLOSE_NAMESPACE3
00083 
00084 #endif // #define COH_ENTRY_EXTRACTOR_HPP
Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.