diff options
Diffstat (limited to 'cc/timer.cc')
-rw-r--r-- | cc/timer.cc | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/cc/timer.cc b/cc/timer.cc deleted file mode 100644 index 364020d..0000000 --- a/cc/timer.cc +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "config.h" - -#include "cc/timer.h" - -#include "base/compiler_specific.h" -#include "base/logging.h" -#include "cc/thread.h" - -namespace cc { - -class TimerTask : public Thread::Task { -public: - explicit TimerTask(Timer* timer) - : Thread::Task(0) - , m_timer(timer) - { - } - - virtual ~TimerTask() - { - if (!m_timer) - return; - - DCHECK(m_timer->m_task == this); - m_timer->stop(); - } - - virtual void performTask() OVERRIDE - { - if (!m_timer) - return; - - TimerClient* client = m_timer->m_client; - - m_timer->stop(); - if (client) - client->onTimerFired(); - } - -private: - friend class Timer; - - Timer* m_timer; // null if cancelled -}; - -Timer::Timer(Thread* thread, TimerClient* client) - : m_client(client) - , m_thread(thread) - , m_task(0) -{ -} - -Timer::~Timer() -{ - stop(); -} - -void Timer::startOneShot(double intervalSeconds) -{ - stop(); - - m_task = new TimerTask(this); - - // The thread expects delays in milliseconds. - m_thread->postDelayedTask(adoptPtr(m_task), intervalSeconds * 1000.0); -} - -void Timer::stop() -{ - if (!m_task) - return; - - m_task->m_timer = 0; - m_task = 0; -} - -} // namespace cc |