summaryrefslogtreecommitdiffstats
path: root/base/message_pump_glib.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-18 20:27:52 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-18 20:27:52 +0000
commit59e69e745ba3fa290ff3c50e65c3db03ee9dde6b (patch)
tree64b82fd1e2375845b59f278f2a1e892dcf54377b /base/message_pump_glib.h
parentbd41e70e44d19eb809eb8565b1d8479daef5d8f5 (diff)
downloadchromium_src-59e69e745ba3fa290ff3c50e65c3db03ee9dde6b.zip
chromium_src-59e69e745ba3fa290ff3c50e65c3db03ee9dde6b.tar.gz
chromium_src-59e69e745ba3fa290ff3c50e65c3db03ee9dde6b.tar.bz2
Move message_pump to base/message_loop.
This also fixes some namespace usage inside the message pump files and updates all users of these files to use the new location. Reland of 206507. Original review https://codereview.chromium.org/17078005/ TBR=sky Review URL: https://codereview.chromium.org/16897006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_pump_glib.h')
-rw-r--r--base/message_pump_glib.h110
1 files changed, 0 insertions, 110 deletions
diff --git a/base/message_pump_glib.h b/base/message_pump_glib.h
deleted file mode 100644
index 48afb55..0000000
--- a/base/message_pump_glib.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright (c) 2012 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 BASE_MESSAGE_PUMP_GLIB_H_
-#define BASE_MESSAGE_PUMP_GLIB_H_
-
-#include "base/base_export.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_pump.h"
-#include "base/observer_list.h"
-#include "base/time.h"
-
-typedef struct _GMainContext GMainContext;
-typedef struct _GPollFD GPollFD;
-typedef struct _GSource GSource;
-
-namespace base {
-
-// MessagePumpObserver is notified prior to an event being dispatched. As
-// Observers are notified of every change, they have to be FAST! The platform
-// specific implementation of the class is in message_pump_gtk/message_pump_x.
-class MessagePumpObserver;
-
-// MessagePumpDispatcher is used during a nested invocation of Run to dispatch
-// events. If Run is invoked with a non-NULL MessagePumpDispatcher, MessageLoop
-// does not dispatch events (or invoke gtk_main_do_event), rather every event is
-// passed to Dispatcher's Dispatch method for dispatch. It is up to the
-// Dispatcher to dispatch, or not, the event. The platform specific
-// implementation of the class is in message_pump_gtk/message_pump_x.
-class MessagePumpDispatcher;
-
-// This class implements a base MessagePump needed for TYPE_UI MessageLoops on
-// platforms using GLib.
-class BASE_EXPORT MessagePumpGlib : public MessagePump {
- public:
- MessagePumpGlib();
-
- // Like MessagePump::Run, but events are routed through dispatcher.
- virtual void RunWithDispatcher(Delegate* delegate,
- MessagePumpDispatcher* dispatcher);
-
- // Internal methods used for processing the pump callbacks. They are
- // public for simplicity but should not be used directly. HandlePrepare
- // is called during the prepare step of glib, and returns a timeout that
- // will be passed to the poll. HandleCheck is called after the poll
- // has completed, and returns whether or not HandleDispatch should be called.
- // HandleDispatch is called if HandleCheck returned true.
- int HandlePrepare();
- bool HandleCheck();
- void HandleDispatch();
-
- // Adds an Observer, which will start receiving notifications immediately.
- void AddObserver(MessagePumpObserver* observer);
-
- // Removes an Observer. It is safe to call this method while an Observer is
- // receiving a notification callback.
- void RemoveObserver(MessagePumpObserver* observer);
-
- // Overridden from MessagePump:
- virtual void Run(Delegate* delegate) OVERRIDE;
- virtual void Quit() OVERRIDE;
- virtual void ScheduleWork() OVERRIDE;
- virtual void ScheduleDelayedWork(const TimeTicks& delayed_work_time) OVERRIDE;
-
- protected:
- virtual ~MessagePumpGlib();
-
- // Returns the dispatcher for the current run state (|state_->dispatcher|).
- MessagePumpDispatcher* GetDispatcher();
-
- ObserverList<MessagePumpObserver>& observers() { return observers_; }
-
- private:
- // We may make recursive calls to Run, so we save state that needs to be
- // separate between them in this structure type.
- struct RunState;
-
- RunState* state_;
-
- // This is a GLib structure that we can add event sources to. We use the
- // default GLib context, which is the one to which all GTK events are
- // dispatched.
- GMainContext* context_;
-
- // This is the time when we need to do delayed work.
- TimeTicks delayed_work_time_;
-
- // The work source. It is shared by all calls to Run and destroyed when
- // the message pump is destroyed.
- GSource* work_source_;
-
- // We use a wakeup pipe to make sure we'll get out of the glib polling phase
- // when another thread has scheduled us to do some work. There is a glib
- // mechanism g_main_context_wakeup, but this won't guarantee that our event's
- // Dispatch() will be called.
- int wakeup_pipe_read_;
- int wakeup_pipe_write_;
- // Use a scoped_ptr to avoid needing the definition of GPollFD in the header.
- scoped_ptr<GPollFD> wakeup_gpollfd_;
-
- // List of observers.
- ObserverList<MessagePumpObserver> observers_;
-
- DISALLOW_COPY_AND_ASSIGN(MessagePumpGlib);
-};
-
-} // namespace base
-
-#endif // BASE_MESSAGE_PUMP_GLIB_H_