Oracle Coherence for C++ API
Release 3.7.0.0

E18684-01

coherence/util/extractor/IdentityExtractor.hpp

00001 /*
00002 * IdentityExtractor.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_IDENTITY_EXTRACTOR_HPP
00017 #define COH_IDENTITY_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/util/extractor/AbstractExtractor.hpp"
00024 
00025 COH_OPEN_NAMESPACE3(coherence,util,extractor)
00026 
00027 using coherence::io::pof::PofReader;
00028 using coherence::io::pof::PofWriter;
00029 
00030 
00031 /**
00032 * Trivial ValueExtractor implementation that does not actually extract
00033 * anything from the passed value, but returns the value itself.
00034 *
00035 * @author djl  2008.03.05
00036 */
00037 class COH_EXPORT IdentityExtractor
00038     : public class_spec<IdentityExtractor,
00039         extends<AbstractExtractor> >
00040     {
00041     friend class factory<IdentityExtractor>;
00042 
00043     // ----- constructors ---------------------------------------------------
00044 
00045     protected:
00046         /**
00047         * Create and return a Handle to a new Object instance.
00048         */
00049         IdentityExtractor();
00050 
00051 
00052     // ----- ValueExtractor interface ---------------------------------------
00053 
00054     public:
00055         /**
00056         * {@inheritDoc}
00057         */
00058         virtual Object::Holder extract(Object::Holder ohTarget) const;
00059 
00060 
00061     // ----- PortableObject interface ---------------------------------------
00062 
00063     public:
00064         /**
00065         * {@inheritDoc}
00066         */
00067         virtual void readExternal(PofReader::Handle hIn);
00068 
00069         /**
00070         * {@inheritDoc}
00071         */
00072         virtual void writeExternal(PofWriter::Handle hOut) const;
00073 
00074 
00075     // ----- Object interface -----------------------------------------------
00076 
00077     public:
00078         /**
00079         * {@inheritDoc}
00080         */
00081         virtual bool equals(Object::View v) const;
00082 
00083         /**
00084         * {@inheritDoc}
00085         */
00086         virtual size32_t hashCode() const;
00087 
00088         /**
00089         * {@inheritDoc}
00090         */
00091         virtual void toStream(std::ostream& out) const;
00092 
00093 
00094     // ----- constants ------------------------------------------------------
00095 
00096     public:
00097         /**
00098         * An instance of the IdentityExtractor.
00099         */
00100         static IdentityExtractor::Handle getInstance();
00101     };
00102 
00103 COH_CLOSE_NAMESPACE3
00104 
00105 #endif // COH_IDENTITY_EXTRACTOR_HPP
Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.