00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
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 
00033 
00034 
00035 
00036 
00037 class COH_EXPORT IdentityExtractor
00038     : public class_spec<IdentityExtractor,
00039         extends<AbstractExtractor> >
00040     {
00041     friend class factory<IdentityExtractor>;
00042 
00043     
00044 
00045     protected:
00046 
00047 
00048 
00049         IdentityExtractor();
00050 
00051 
00052     
00053 
00054     public:
00055 
00056 
00057 
00058         virtual Object::Holder extract(Object::Holder ohTarget) const;
00059 
00060 
00061     
00062 
00063     public:
00064 
00065 
00066 
00067         virtual void readExternal(PofReader::Handle hIn);
00068 
00069 
00070 
00071 
00072         virtual void writeExternal(PofWriter::Handle hOut) const;
00073 
00074 
00075     
00076 
00077     public:
00078 
00079 
00080 
00081         virtual bool equals(Object::View v) const;
00082 
00083 
00084 
00085 
00086         virtual size32_t hashCode() const;
00087 
00088 
00089 
00090 
00091         virtual void toStream(std::ostream& out) const;
00092 
00093 
00094     
00095 
00096     public:
00097 
00098 
00099 
00100         static IdentityExtractor::Handle getInstance();
00101     };
00102 
00103 COH_CLOSE_NAMESPACE3
00104 
00105 #endif // COH_IDENTITY_EXTRACTOR_HPP