Oracle Coherence for C++ API
Release 3.6.0.0
E15728-01

- Main Page
- Namespaces
- Classes
- Files

# coherence/net/AbstractPriorityTask.hpp

    00001 /*
    00002 * AbstractPriorityTask.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_ABSTRACT_PRIORITY_TASK_HPP
    00017 #define COH_ABSTRACT_PRIORITY_TASK_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/PriorityTask.hpp"
    00025
    00026 COH_OPEN_NAMESPACE2(coherence,net)
    00027
    00028 using coherence::io::pof::PofReader;
    00029 using coherence::io::pof::PofWriter;
    00030 using coherence::io::pof::PortableObject;
    00031
    00032
    00033 /**
    00034 * An abstract base for AbstractPriorityTask implementations. It implements
    00035 * all AbstractPriorityTask interface methods and is intended to be extended
    00036 * for concrete uses.
    00037 *
    00038 * @author djl  2008.05.15
    00039 */
    00040 class COH_EXPORT AbstractPriorityTask
    00041     : public abstract_spec<AbstractPriorityTask,
    00042         extends<Object>,
    00043         implements<PortableObject, PriorityTask> >
    00044     {
    00045     // ----- constructors ---------------------------------------------------
    00046
    00047     protected:
    00048         /**
    00049         * @internal
    00050         */
    00051         AbstractPriorityTask();
    00052
    00053
    00054     // ----- PriorityTask interface -----------------------------------------
    00055
    00056     public:
    00057         /**
    00058         * {@inheritDoc}
    00059         */
    00060         virtual int32_t getSchedulingPriority() const;
    00061
    00062         /**
    00063         * {@inheritDoc}
    00064         */
    00065         virtual int64_t getExecutionTimeoutMillis() const;
    00066
    00067         /**
    00068         * {@inheritDoc}
    00069         */
    00070         virtual int64_t getRequestTimeoutMillis() const;
    00071
    00072         /**
    00073         * {@inheritDoc}
    00074         * <p>
    00075         * This implementation is a no-op.
    00076         */
    00077         virtual void runCanceled(bool fAbandoned);
    00078
    00079
    00080     // ----- PortableObject interface ---------------------------------------
    00081
    00082     public:
    00083         /**
    00084         * {@inheritDoc}
    00085         */
    00086         virtual void readExternal(PofReader::Handle hIn);
    00087
    00088         /**
    00089         * {@inheritDoc}
    00090         */
    00091         virtual void writeExternal(PofWriter::Handle hOut) const;
    00092
    00093
    00094     // ----- Data member mutators -------------------------------------------
    00095
    00096     public:
    00097         /**
    00098         * Specify this task's scheduling priority. Valid values are one of
    00099         * the SCHEDULE_* constants.
    00100         *
    00101         * @param iPriority  this task's scheduling priority
    00102         */
    00103         virtual void setSchedulingPriority(int32_t iPriority);
    00104
    00105         /**
    00106         * Specify the maximum amount of time this task is allowed to run
    00107         * before the corresponding service will attempt to stop it.
    00108         *
    00109         * @param lTimeout the task timeout value in milliseconds
    00110         */
    00111         virtual void setExecutionTimeoutMillis(int64_t lTimeout);
    00112
    00113         /**
    00114         * Specify the maximum amount of time a calling thread is willing to
    00115         * wait for a result of the request execution.
    00116         *
    00117         * @param lTimeout  the request timeout value in milliseconds
    00118         */
    00119         virtual void setRequestTimeoutMillis(int64_t lTimeout);
    00120
    00121
    00122     // ----- data members ---------------------------------------------------
    00123
    00124     private:
    00125         /**
    00126         * The scheduling priority value.
    00127         *
    00128         * Default value PriorityTask::SCHEDULE_STANDARD
    00129         */
    00130         int32_t m_iSchedulingPriority;
    00131
    00132         /**
    00133         * The task execution timeout value.
    00134         *
    00135         * Default value PriorityTask::TIMEOUT_DEFAULT
    00136         */
    00137         int64_t m_lExecutionTimeout;
    00138
    00139         /**
    00140         * The request timeout value.
    00141         *
    00142         * Default value PriorityTask::TIMEOUT_DEFAULT
    00143         */
    00144         int64_t m_lRequestTimeout;
    00145     };
    00146
    00147 COH_CLOSE_NAMESPACE2
    00148
    00149 #endif // COH_ABSTRACT_PRIORITY_TASK_HPP

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