Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47891-01

coherence/util/processor/CompositeProcessor.hpp

00001 /*
00002 * CompositeProcessor.hpp
00003 *
00004 * Copyright (c) 2000, 2014, 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_COMPOSITE_PROCESSOR_HPP
00017 #define COH_COMPOSITE_PROCESSOR_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/processor/AbstractProcessor.hpp"
00026 
00027 COH_OPEN_NAMESPACE3(coherence,util, processor)
00028 
00029 using coherence::io::pof::PofReader;
00030 using coherence::io::pof::PofWriter;
00031 using coherence::io::pof::PortableObject;
00032 using coherence::util::InvocableMap;
00033 
00034 
00035 /**
00036 * The CompositeProcessor represents a collection of entry processors that are
00037 * invoked sequentially against the same Entry.
00038 *
00039 * @author tb  2008.04.28
00040 */
00041 class COH_EXPORT CompositeProcessor
00042     : public class_spec<CompositeProcessor,
00043         extends<AbstractProcessor>,
00044         implements<PortableObject> >
00045     {
00046     friend class factory<CompositeProcessor>;
00047 
00048     // ----- constructors ---------------------------------------------------
00049 
00050     protected:
00051         /**
00052         * Construct a CompositeProcessor.
00053         */
00054         CompositeProcessor();
00055 
00056         /**
00057         * Construct a CompositeProcessor for the specified array of
00058         * individual entry processors.
00059         *
00060         * @param vaProcessor  the entry processor array
00061         */
00062         CompositeProcessor(ObjectArray::View vaProcessor);
00063 
00064 
00065     // ----- InvocableMap::EntryProcessor interface -------------------------
00066 
00067     public:
00068         /**
00069         * {@inheritDoc}
00070         */
00071         virtual Object::Holder process(
00072                 InvocableMap::Entry::Handle hEntry) const;
00073 
00074 
00075     // ----- PortableObject interface ---------------------------------------
00076 
00077     public:
00078         /**
00079         * {@inheritDoc}
00080         */
00081         virtual void readExternal(PofReader::Handle hIn);
00082 
00083         /**
00084         * {@inheritDoc}
00085         */
00086         virtual void writeExternal(PofWriter::Handle hOut) const;
00087 
00088 
00089     // ----- Object interface -----------------------------------------------
00090 
00091     public:
00092         /**
00093         * {@inheritDoc}
00094         */
00095         virtual bool equals(Object::View v) const;
00096 
00097         /**
00098         * {@inheritDoc}
00099         */
00100         virtual size32_t hashCode() const;
00101 
00102 
00103     // ----- data members ---------------------------------------------------
00104 
00105     protected:
00106         /**
00107         * The underlying entry processor array.
00108         */
00109         FinalView<ObjectArray> f_vaProcessor;
00110     };
00111 
00112 COH_CLOSE_NAMESPACE3
00113 
00114 #endif // COH_COMPOSITE_PROCESSOR_HPP
Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.