| Index: Source/WebCore/platform/RunLoop.h
|
| diff --git a/Source/WebCore/platform/RunLoop.h b/Source/WebCore/platform/RunLoop.h
|
| deleted file mode 100644
|
| index f56115803ceff2a821d514a0405388f408e3d384..0000000000000000000000000000000000000000
|
| --- a/Source/WebCore/platform/RunLoop.h
|
| +++ /dev/null
|
| @@ -1,168 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2010 Apple Inc. All rights reserved.
|
| - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
|
| - * Portions Copyright (c) 2010 Motorola Mobility, Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
| - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
| - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
| - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
| - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
| - * THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#ifndef RunLoop_h
|
| -#define RunLoop_h
|
| -
|
| -#include <wtf/Deque.h>
|
| -#include <wtf/Forward.h>
|
| -#include <wtf/Functional.h>
|
| -#include <wtf/HashMap.h>
|
| -#include <wtf/ThreadSpecific.h>
|
| -#include <wtf/Threading.h>
|
| -
|
| -#if PLATFORM(GTK)
|
| -#include <wtf/gobject/GRefPtr.h>
|
| -#endif
|
| -
|
| -namespace WebCore {
|
| -
|
| -class RunLoop {
|
| -public:
|
| - // Must be called from the main thread (except for the Mac platform, where it
|
| - // can be called from any thread).
|
| - static void initializeMainRunLoop();
|
| -
|
| - // Must be called before entering main run loop. If called, application style run loop will be used, handling events.
|
| - static void setUseApplicationRunLoopOnMainRunLoop();
|
| -
|
| - static RunLoop* current();
|
| - static RunLoop* main();
|
| -
|
| - void dispatch(const Function<void()>&);
|
| -
|
| - static void run();
|
| - void stop();
|
| - void wakeUp();
|
| -
|
| -#if PLATFORM(MAC)
|
| - void runForDuration(double duration);
|
| -#endif
|
| -
|
| - class TimerBase {
|
| - friend class RunLoop;
|
| - public:
|
| - explicit TimerBase(RunLoop*);
|
| - virtual ~TimerBase();
|
| -
|
| - void startRepeating(double repeatInterval) { start(repeatInterval, true); }
|
| - void startOneShot(double interval) { start(interval, false); }
|
| -
|
| - void stop();
|
| - bool isActive() const;
|
| -
|
| - virtual void fired() = 0;
|
| -
|
| - private:
|
| - void start(double nextFireInterval, bool repeat);
|
| -
|
| - RunLoop* m_runLoop;
|
| -
|
| -#if PLATFORM(WIN)
|
| - static void timerFired(RunLoop*, uint64_t ID);
|
| - uint64_t m_ID;
|
| - bool m_isRepeating;
|
| -#elif PLATFORM(MAC)
|
| - static void timerFired(CFRunLoopTimerRef, void*);
|
| - CFRunLoopTimerRef m_timer;
|
| -#elif PLATFORM(QT)
|
| - static void timerFired(RunLoop*, int ID);
|
| - int m_ID;
|
| - bool m_isRepeating;
|
| -#elif PLATFORM(GTK)
|
| - static gboolean timerFiredCallback(RunLoop::TimerBase*);
|
| - gboolean isRepeating() const { return m_isRepeating; }
|
| - void clearTimerSource();
|
| - GRefPtr<GSource> m_timerSource;
|
| - gboolean m_isRepeating;
|
| -#endif
|
| - };
|
| -
|
| - template <typename TimerFiredClass>
|
| - class Timer : public TimerBase {
|
| - public:
|
| - typedef void (TimerFiredClass::*TimerFiredFunction)();
|
| -
|
| - Timer(RunLoop* runLoop, TimerFiredClass* o, TimerFiredFunction f)
|
| - : TimerBase(runLoop)
|
| - , m_object(o)
|
| - , m_function(f)
|
| - {
|
| - }
|
| -
|
| - private:
|
| - virtual void fired() { (m_object->*m_function)(); }
|
| -
|
| - TimerFiredClass* m_object;
|
| - TimerFiredFunction m_function;
|
| - };
|
| -
|
| -private:
|
| - friend class WTF::ThreadSpecific<RunLoop>;
|
| -
|
| - RunLoop();
|
| - ~RunLoop();
|
| -
|
| - void performWork();
|
| -
|
| - Mutex m_functionQueueLock;
|
| - Deque<Function<void()> > m_functionQueue;
|
| -
|
| -#if PLATFORM(WIN)
|
| - static bool registerRunLoopMessageWindowClass();
|
| - static LRESULT CALLBACK RunLoopWndProc(HWND, UINT, WPARAM, LPARAM);
|
| - LRESULT wndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
| - HWND m_runLoopMessageWindow;
|
| -
|
| - typedef HashMap<uint64_t, TimerBase*> TimerMap;
|
| - TimerMap m_activeTimers;
|
| -#elif PLATFORM(MAC)
|
| - RunLoop(CFRunLoopRef);
|
| - static void performWork(void*);
|
| - CFRunLoopRef m_runLoop;
|
| - CFRunLoopSourceRef m_runLoopSource;
|
| - int m_nestingLevel;
|
| -#elif PLATFORM(QT)
|
| - typedef HashMap<int, TimerBase*> TimerMap;
|
| - TimerMap m_activeTimers;
|
| - class TimerObject;
|
| - TimerObject* m_timerObject;
|
| -#elif PLATFORM(GTK)
|
| -public:
|
| - static gboolean queueWork(RunLoop*);
|
| - GMainLoop* innermostLoop();
|
| - void pushNestedMainLoop(GMainLoop*);
|
| - void popNestedMainLoop();
|
| -private:
|
| - GRefPtr<GMainContext> m_runLoopContext;
|
| - Vector<GRefPtr<GMainLoop> > m_runLoopMainLoops;
|
| -#endif
|
| -};
|
| -
|
| -} // namespace WebCore
|
| -
|
| -#endif // RunLoop_h
|
|
|