00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
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 
00035 
00036 
00037 
00038 
00039 
00040 class COH_EXPORT AbstractPriorityTask
00041     : public abstract_spec<AbstractPriorityTask,
00042         extends<Object>,
00043         implements<PortableObject, PriorityTask> >
00044     {
00045     
00046 
00047     protected:
00048 
00049 
00050 
00051         AbstractPriorityTask();
00052 
00053 
00054     
00055 
00056     public:
00057 
00058 
00059 
00060         virtual int32_t getSchedulingPriority() const;
00061 
00062 
00063 
00064 
00065         virtual int64_t getExecutionTimeoutMillis() const;
00066 
00067 
00068 
00069 
00070         virtual int64_t getRequestTimeoutMillis() const;
00071 
00072 
00073 
00074 
00075 
00076 
00077         virtual void runCanceled(bool fAbandoned);
00078 
00079 
00080     
00081 
00082     public:
00083 
00084 
00085 
00086         virtual void readExternal(PofReader::Handle hIn);
00087 
00088 
00089 
00090 
00091         virtual void writeExternal(PofWriter::Handle hOut) const;
00092 
00093 
00094     
00095 
00096     public:
00097 
00098 
00099 
00100 
00101 
00102 
00103         virtual void setSchedulingPriority(int32_t iPriority);
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111         virtual void setExecutionTimeoutMillis(int64_t lTimeout);
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119         virtual void setRequestTimeoutMillis(int64_t lTimeout);
00120 
00121 
00122     
00123 
00124     private:
00125 
00126 
00127 
00128 
00129 
00130         int32_t m_iSchedulingPriority;
00131 
00132 
00133 
00134 
00135 
00136 
00137         int64_t m_lExecutionTimeout;
00138 
00139 
00140 
00141 
00142 
00143 
00144         int64_t m_lRequestTimeout;
00145     };
00146 
00147 COH_CLOSE_NAMESPACE2
00148 
00149 #endif // COH_ABSTRACT_PRIORITY_TASK_HPP