Oracle Coherence for C++ API
Release 3.7.1.0
E22845-01
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