Oracle Coherence for C++ API
Release 3.6.1.0
E18813-01

- Main Page
- Namespaces
- Classes
- Files

# coherence/util/processor/PriorityProcessor.hpp

    00001 /*
    00002 * PriorityProcessor.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_PRIORITY_PROCESSOR_HPP
    00017 #define COH_PRIORITY_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/net/AbstractPriorityTask.hpp"
    00025 #include "coherence/util/InvocableMap.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::net::AbstractPriorityTask;
    00033 using coherence::util::InvocableMap;
    00034
    00035
    00036 /**
    00037 * PriorityProcessor is used to explicitly control the scheduling priority and
    00038 * timeouts for execution of EntryProcessor-based methods.
    00039 *
    00040 * @author tb  2008.05.23
    00041 */
    00042 class COH_EXPORT PriorityProcessor
    00043     : public class_spec<PriorityProcessor,
    00044         extends<AbstractPriorityTask>,
    00045         implements<InvocableMap::EntryProcessor, PortableObject> >
    00046     {
    00047     friend class factory<PriorityProcessor>;
    00048
    00049     // ----- constructors ---------------------------------------------------
    00050
    00051     protected:
    00052         /**
    00053         * Construct a PriorityProcessor.
    00054         *
    00055         * @return a new PriorityProcessor
    00056         */
    00057         PriorityProcessor();
    00058
    00059         /**
    00060         * Construct a PriorityProcessor.
    00061         *
    00062         * @param processor  the processor wrapped by this PriorityProcessor
    00063         */
    00064         PriorityProcessor(InvocableMap::EntryProcessor::View vProcessor);
    00065
    00066
    00067     // ----- InvocableMap::EntryProcessor interface -------------------------
    00068
    00069     public:
    00070         /**
    00071         * {@inheritDoc}
    00072         */
    00073         virtual Object::Holder process(InvocableMap::Entry::Handle hEntry) const;
    00074
    00075         /**
    00076         * {@inheritDoc}
    00077         */
    00078         virtual Map::View processAll(Set::View vSetEntries) const;
    00079
    00080
    00081     // ----- accessors ------------------------------------------------------
    00082
    00083     public:
    00084         /**
    00085         * Obtain the underlying processor.
    00086         *
    00087         * @return the processor wrapped by this PriorityProcessor
    00088         */
    00089         virtual InvocableMap::EntryProcessor::View getProcessor() const;
    00090
    00091
    00092     // ----- PortableObject interface ---------------------------------------
    00093
    00094     public:
    00095         /**
    00096         * {@inheritDoc}
    00097         */
    00098         virtual void readExternal(PofReader::Handle hIn);
    00099
    00100         /**
    00101         * {@inheritDoc}
    00102         */
    00103         virtual void writeExternal(PofWriter::Handle hOut) const;
    00104
    00105
    00106     // ----- Object interface -----------------------------------------------
    00107
    00108     public:
    00109         /**
    00110         * {@inheritDoc}
    00111         */
    00112         virtual void toStream(std::ostream &out) const;
    00113
    00114
    00115     // ----- data members ---------------------------------------------------
    00116
    00117     protected:
    00118         /**
    00119         * The underlying entry processor.
    00120         */
    00121         MemberView<InvocableMap::EntryProcessor> m_vProcessor;
    00122     };
    00123
    00124 COH_CLOSE_NAMESPACE3
    00125
    00126 #endif // COH_PRIORITY_PROCESSOR_HPP

Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.