Index: webrtc/base/dbus.h |
diff --git a/webrtc/base/dbus.h b/webrtc/base/dbus.h |
deleted file mode 100644 |
index fb90638bc3666b5b3fb7350acd2814e36f0d5da9..0000000000000000000000000000000000000000 |
--- a/webrtc/base/dbus.h |
+++ /dev/null |
@@ -1,168 +0,0 @@ |
-/* |
- * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#ifndef WEBRTC_BASE_DBUS_H_ |
-#define WEBRTC_BASE_DBUS_H_ |
- |
-#ifdef HAVE_DBUS_GLIB |
- |
-#include <dbus/dbus.h> |
- |
-#include <string> |
-#include <vector> |
- |
-#include "webrtc/base/libdbusglibsymboltable.h" |
-#include "webrtc/base/messagehandler.h" |
-#include "webrtc/base/thread.h" |
- |
-namespace rtc { |
- |
-#define DBUS_TYPE "type" |
-#define DBUS_SIGNAL "signal" |
-#define DBUS_PATH "path" |
-#define DBUS_INTERFACE "interface" |
-#define DBUS_MEMBER "member" |
- |
-#ifdef CHROMEOS |
-#define CROS_PM_PATH "/" |
-#define CROS_PM_INTERFACE "org.chromium.PowerManager" |
-#define CROS_SIG_POWERCHANGED "PowerStateChanged" |
-#define CROS_VALUE_SLEEP "mem" |
-#define CROS_VALUE_RESUME "on" |
-#else |
-#define UP_PATH "/org/freedesktop/UPower" |
-#define UP_INTERFACE "org.freedesktop.UPower" |
-#define UP_SIG_SLEEPING "Sleeping" |
-#define UP_SIG_RESUMING "Resuming" |
-#endif // CHROMEOS |
- |
-// Wraps a DBus messages. |
-class DBusSigMessageData : public TypedMessageData<DBusMessage *> { |
- public: |
- explicit DBusSigMessageData(DBusMessage *message); |
- ~DBusSigMessageData(); |
-}; |
- |
-// DBusSigFilter is an abstract class that defines the interface of DBus |
-// signal handling. |
-// The subclasses implement ProcessSignal() for various purposes. |
-// When a DBus signal comes, a DSM_SIGNAL message is posted to the caller thread |
-// which will then invokes ProcessSignal(). |
-class DBusSigFilter : protected MessageHandler { |
- public: |
- enum DBusSigMessage { DSM_SIGNAL }; |
- |
- // This filter string should ususally come from BuildFilterString() |
- explicit DBusSigFilter(const std::string &filter) |
- : caller_thread_(Thread::Current()), filter_(filter) { |
- } |
- |
- // Builds a DBus monitor filter string from given DBus path, interface, and |
- // member. |
- // See http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html |
- static std::string BuildFilterString(const std::string &path, |
- const std::string &interface, |
- const std::string &member); |
- |
- // Handles callback on DBus messages by DBus system. |
- static DBusHandlerResult DBusCallback(DBusConnection *dbus_conn, |
- DBusMessage *message, |
- void *instance); |
- |
- // Handles callback on DBus messages to each DBusSigFilter instance. |
- DBusHandlerResult Callback(DBusMessage *message); |
- |
- // From MessageHandler. |
- virtual void OnMessage(Message *message); |
- |
- // Returns the DBus monitor filter string. |
- const std::string &filter() const { return filter_; } |
- |
- private: |
- // On caller thread. |
- virtual void ProcessSignal(DBusMessage *message) = 0; |
- |
- Thread *caller_thread_; |
- const std::string filter_; |
-}; |
- |
-// DBusMonitor is a class for DBus signal monitoring. |
-// |
-// The caller-thread calls AddFilter() first to add the signals that it wants to |
-// monitor and then calls StartMonitoring() to start the monitoring. |
-// This will create a worker-thread which listens on DBus connection and sends |
-// DBus signals back through the callback. |
-// The worker-thread will be running forever until either StopMonitoring() is |
-// called from the caller-thread or the worker-thread hit some error. |
-// |
-// Programming model: |
-// 1. Caller-thread: Creates an object of DBusMonitor. |
-// 2. Caller-thread: Calls DBusMonitor::AddFilter() one or several times. |
-// 3. Caller-thread: StartMonitoring(). |
-// ... |
-// 4. Worker-thread: DBus signal recieved. Post a message to caller-thread. |
-// 5. Caller-thread: DBusFilterBase::ProcessSignal() is invoked. |
-// ... |
-// 6. Caller-thread: StopMonitoring(). |
-// |
-// Assumption: |
-// AddFilter(), StartMonitoring(), and StopMonitoring() methods are called by |
-// a single thread. Hence, there is no need to make them thread safe. |
-class DBusMonitor { |
- public: |
- // Status of DBus monitoring. |
- enum DBusMonitorStatus { |
- DMS_NOT_INITIALIZED, // Not initialized. |
- DMS_INITIALIZING, // Initializing the monitoring thread. |
- DMS_RUNNING, // Monitoring. |
- DMS_STOPPED, // Not monitoring. Stopped normally. |
- DMS_FAILED, // Not monitoring. Failed. |
- }; |
- |
- // Returns the DBus-Glib symbol table. |
- // We should only use this function to access DBus-Glib symbols. |
- static LibDBusGlibSymbolTable *GetDBusGlibSymbolTable(); |
- |
- // Creates an instance of DBusMonitor. |
- static DBusMonitor *Create(DBusBusType type); |
- ~DBusMonitor(); |
- |
- // Adds a filter to DBusMonitor. |
- bool AddFilter(DBusSigFilter *filter); |
- |
- // Starts DBus message monitoring. |
- bool StartMonitoring(); |
- |
- // Stops DBus message monitoring. |
- bool StopMonitoring(); |
- |
- // Gets the status of DBus monitoring. |
- DBusMonitorStatus GetStatus(); |
- |
- private: |
- // Forward declaration. Defined in the .cc file. |
- class DBusMonitoringThread; |
- |
- explicit DBusMonitor(DBusBusType type); |
- |
- // Updates status_ when monitoring status has changed. |
- void OnMonitoringStatusChanged(DBusMonitorStatus status); |
- |
- DBusBusType type_; |
- DBusMonitorStatus status_; |
- DBusMonitoringThread *monitoring_thread_; |
- std::vector<DBusSigFilter *> filter_list_; |
-}; |
- |
-} // namespace rtc |
- |
-#endif // HAVE_DBUS_GLIB |
- |
-#endif // WEBRTC_BASE_DBUS_H_ |