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

E47891-01

coherence/net/AbstractPriorityTask.hpp

00001 /*
00002 * AbstractPriorityTask.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_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, 2014, Oracle and/or its affiliates. All rights reserved.