diff options
author | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2012-08-16 09:36:07 +0000 |
---|---|---|
committer | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2012-08-16 09:36:07 +0000 |
commit | f25c7a2aa1e464b424ba5add600f9a3e0edc9ee2 (patch) | |
tree | 176c473ff67ebacacb932706101f3a4f46d352a4 /ACE/ace/Task_T.inl | |
parent | 22a406258b246f6f07610d38f749ba3a8c7cbd7e (diff) | |
download | ATCD-f25c7a2aa1e464b424ba5add600f9a3e0edc9ee2.tar.gz |
ChangeLogTag: Thu Aug 16 09:22:31 UTC 2012 Martin Corino <mcorino@remedy.nl>
Diffstat (limited to 'ACE/ace/Task_T.inl')
-rw-r--r-- | ACE/ace/Task_T.inl | 84 |
1 files changed, 51 insertions, 33 deletions
diff --git a/ACE/ace/Task_T.inl b/ACE/ace/Task_T.inl index adfef98cb03..c9b076f497c 100644 --- a/ACE/ace/Task_T.inl +++ b/ACE/ace/Task_T.inl @@ -4,52 +4,52 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL -template <ACE_SYNCH_DECL> ACE_INLINE void -ACE_Task<ACE_SYNCH_USE>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd, +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd, size_t wm_size) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::water_marks"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::water_marks"); if (cmd == ACE_IO_Cntl_Msg::SET_LWM) this->msg_queue_->low_water_mark (wm_size); else /* cmd == ACE_IO_Cntl_Msg::SET_HWM */ this->msg_queue_->high_water_mark (wm_size); } -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::getq (ACE_Message_Block *&mb, ACE_Time_Value *tv) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::getq (ACE_Message_Block *&mb, ACE_Time_Value *tv) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::getq"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::getq"); return this->msg_queue_->dequeue_head (mb, tv); } -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::putq"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::putq"); return this->msg_queue_->enqueue_tail (mb, tv); } -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::ungetq (ACE_Message_Block *mb, ACE_Time_Value *tv) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::ungetq (ACE_Message_Block *mb, ACE_Time_Value *tv) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::ungetq"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::ungetq"); return this->msg_queue_->enqueue_head (mb, tv); } -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::flush (u_long flag) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::flush (u_long flag) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::flush"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::flush"); if (ACE_BIT_ENABLED (flag, ACE_Task_Flags::ACE_FLUSHALL)) return this->msg_queue_ != 0 && this->msg_queue_->close (); else return -1; // Note, need to be more careful about what we free... } -template <ACE_SYNCH_DECL> ACE_INLINE void -ACE_Task<ACE_SYNCH_USE>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *mq) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *mq) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue"); if (this->delete_msg_queue_) { delete this->msg_queue_; @@ -58,40 +58,58 @@ ACE_Task<ACE_SYNCH_USE>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *mq) this->msg_queue_ = mq; } -template <ACE_SYNCH_DECL> ACE_Message_Queue<ACE_SYNCH_USE> * -ACE_Task<ACE_SYNCH_USE>::msg_queue (void) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> * +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue (void) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue"); return this->msg_queue_; } -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::reply (ACE_Message_Block *mb, ACE_Time_Value *tv) +template <ACE_SYNCH_DECL, class TIME_POLICY> +ACE_Time_Value_T<TIME_POLICY> +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::gettimeofday (void) const { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::reply"); + if (this->msg_queue_ != 0) + return this->msg_queue_->gettimeofday (); + + return ACE_Time_Value_T<TIME_POLICY> (ACE_Time_Value::zero); +} + +template <ACE_SYNCH_DECL, class TIME_POLICY> +void +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs) +{ + if (this->msg_queue_ != 0) + this->msg_queue_->set_time_policy (rhs); +} + +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::reply (ACE_Message_Block *mb, ACE_Time_Value *tv) +{ + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::reply"); return this->sibling ()->put_next (mb, tv); } -template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> * -ACE_Task<ACE_SYNCH_USE>::next (void) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Task<ACE_SYNCH_USE, TIME_POLICY> * +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next (void) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next"); return this->next_; } -template <ACE_SYNCH_DECL> ACE_INLINE void -ACE_Task<ACE_SYNCH_USE>::next (ACE_Task<ACE_SYNCH_USE> *q) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next"); this->next_ = q; } // Transfer msg to the next ACE_Task. -template <ACE_SYNCH_DECL> ACE_INLINE int -ACE_Task<ACE_SYNCH_USE>::put_next (ACE_Message_Block *msg, ACE_Time_Value *tv) +template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int +ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::put_next (ACE_Message_Block *msg, ACE_Time_Value *tv) { - ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::put_next"); + ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::put_next"); return this->next_ == 0 ? -1 : this->next_->put (msg, tv); } |