// 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. #ifndef CCTimer_h #define CCTimer_h namespace cc { class CCThread; class CCTimerTask; class CCTimerClient { public: virtual ~CCTimerClient() { } virtual void onTimerFired() = 0; }; class CCTimer { public: CCTimer(CCThread*, CCTimerClient*); ~CCTimer(); // If a previous task is pending, it will be replaced with the new one. void startOneShot(double intervalSeconds); void stop(); bool isActive() const { return m_task; } private: friend class CCTimerTask; CCTimerClient* m_client; CCThread* m_thread; CCTimerTask* m_task; // weak pointer }; } // namespace cc #endif