Commit Graph

25 Commits

Author SHA1 Message Date
Thomas Zimmermann
b5e7a17af5 Bug 919913: Cleanup DBusUtils, r=qdot
This patch cleans up the DBus utilitys and helper classes. All functions
for sending have been removed. Their users have been converted to the
new methods in RawDBusConnection. Include statements have been cleaned
up as well. Some methods of DBusMessageRefPtr have been moved from the
header to the source file to prevent inclusion of the DBus API from within
the header file.
2013-10-01 10:20:39 +02:00
Birunthan Mohanathas
ee5104f639 Bug 784739 - Switch from NULL to nullptr in ipc/. r=ehsan 2013-08-23 15:51:44 -04:00
Thomas Zimmermann
59582db300 Bug 891276: Removed unused function dbus_returns_uint32, r=echou
AddServiceRecords was the only user of this function. This patch
cleans it up.
2013-07-11 09:58:53 +02:00
Thomas Zimmermann
531f010a48 Bug 884840: Reimplement GetServiceChannel without Bluetooth command thread, r=echou
The method BluetoothDBusService::GetServiceChannel currently blocks the
Bluetooth command thread while waiting for a DBus message, before it
dispatches a runnable to the main thread.

With this patch, the DBus message is processed asyncronously, and the
runnable gets dispatched from the DBus reply handler.

--HG--
extra : rebase_source : 24519b7dd8d59fcbbf78436092610c8db195f6a2
2013-07-09 09:56:14 +02:00
Thomas Zimmermann
048c6336eb Bug 884840: Added DBusReplyHandler, r=qdot
Handler functions for DBus replies sometimes need several data fields
or need to keep state over replies for multiple messages. The DBus API
itself only allows for a single pointer to user data.

The class DBusReplyHandler is a base class for implementing DBus reply-
message handlers. Users of DBus can inherit from this class to implement
message-specific handlers.

--HG--
extra : rebase_source : 91c5f6e8d365922fd3b52fbaf502052f86274f16
2013-07-09 09:55:08 +02:00
Thomas Zimmermann
bc89c94747 Bug 830290: Don't block DBus while waiting for replies r=bent,qdot 2013-03-11 15:22:56 +01:00
Thomas Zimmermann
a9f9586dbc Bug 830290: Send blocking DBus messages from within DBus thread r=bent,qdot
The this commit moves the sending of blocking DBus messages to the
DBus thread. This allows us to avoid concurrency problems within the
DBus library, which is not explicitly thread-safe.

As a side note, I'd like to mention that blocking in distributed
systems simply doesn't work. The dbus library is especially broken
in this regard as it delays all unrelated messages until the reply
for the blocking request has been received. A future commit should
implement this functionality with an asyncronous call and make the
related thread wait for the reply.
2013-03-01 15:05:50 +01:00
Thomas Zimmermann
f47f37fc91 Bug 830290: Execute DBus send operation in DBus thread r=bent,qdot
The DBus send operation simply sends a DBus message without further
processing of replies. If the sender is interested in a reply, the
respective serial number can be returned. In this case, the sending
operation (and only the sending) is serialized with the calling
thread.
2013-03-01 13:43:45 +01:00
Thomas Zimmermann
adfa4a29d0 Bug 830290: Cleanup DBusConnectionSendWithReplyTask r=bent,qdot
The class DBusConnectionSendWithReplyTask has been renamed to
DBusConnectionSendWithReplyRunnable, which better fits its purpose. The
internal callback function and data has been move into the implementation
of DBusConnectionSendWithReplyRunnable. Additionally, there is now an
abstract base class for DBus send runnables. This class will become useful
for implementing send classes with different policies.
2013-03-01 12:49:57 +01:00
Thomas Zimmermann
1853aa5f3f Bug 830290: Setup asyncronous DBus messages in DBus thread r=bent,qdot
This patch finally fixes bug 827888 were a message's reply was
received before the respective handler function could be installed.

The patch adds the class DBusConnectionSendWithReplyTask, which
asyncronously sends a DBus message and installs the reply's handler
function. The DBus utility functions for asyncronous messages create
an instance of this class and dispatch it to the DBus thread. This
intercepts the DBusPollTask, so no DBus replies can be received until
the dispatched DBusConnectionSendWithReplyTask has finished.
2013-01-28 10:15:31 +01:00
Gina Yeh
f8177e8e6e Bug 841984 - Check both return value and pending_call, r=qdot 2013-03-08 12:10:09 +08:00
Thomas Zimmermann
909ad70366 Bug 827888: Explicitly call notifier if DBUS call completes early [r=echou,qdot]
If a DBUS call completes before we can set the notifier function, the
call's response never gets handled. To workaround this problem, we now
call the notifier explicitly if the call completes this early.

It can still happen that the call's response gets lost, but this
workaround greatly improves the success rate for our problem of handling
errors during Bluetooth device pairing; from maybe 10% to 75%.
2013-01-10 07:55:43 -08:00
Kyle Machulis
57d3f019c3 Bug 790739: Patch 3 - Service and Manager changes for Bluetooth server sockets; r=cjones 2012-10-01 00:04:01 -07:00
Kyle Machulis
889f44f4a8 Backing out 9a88f0d57e7d (Bug 790739) due to bustage
--HG--
extra : rebase_source : 1f6e7eda80f1b66b854c5c112f1b0816381f27e2
2012-09-30 23:16:26 -07:00
Kyle Machulis
6d143f7d47 Bug 790739: Patch 3 - Service and Manager changes for Bluetooth server sockets; r=cjones 2012-09-30 22:55:27 -07:00
Eric Chou
1f79e5fddf Bug 783932 - [b2g-bluetooth] Fix wrong textwidth(tw=) value in Mode line, r=qdot 2012-08-21 11:21:24 +08:00
Kyle Machulis
fbd17f6e7e Bug 768306 - Patch 1: Fix error handling in unpacking DBus replies, set up DBus blocking call handling thread; r=mrbkap 2012-08-08 10:46:39 -07:00
Eric Chou
6b01ab6f0a Bug 780812 - [b2g-bluetooth] Implement function to get RFCOMM channel of specific Bluetooth service; r=qdot 2012-08-07 21:19:07 -07:00
Kyle Machulis
5abbd0bc68 Bug 740744: Asynchronous dbus events for bluetooth, Start/StopDiscovery and device event firing; r=bent sr=mrbkap 2012-07-17 20:41:54 -07:00
Kyle Machulis
e43e1e8665 Bug 744349 - Create message distribution mechanism for DBus Bluetooth Signals; r=cjones 2012-06-02 11:23:16 -07:00
Ryan VanderMeulen
3dff13f360 Re-land the patch for bug 732639 after a b2g clobber. 2012-05-07 17:50:25 -04:00
Ryan VanderMeulen
c704b93e25 Backout 7a8607523522 (bug 732639) due to bustage. r=Boot2Fail 2012-05-07 17:21:01 -04:00
Kyle Machulis
4dee4af461 Bug 732639: Create event loop thread for bluetooth dbus on gonk/linux; r=cjones 2012-05-07 14:04:59 -07:00
Ms2ger
904a38aeb8 Backed out changeset db5d4c1aece7 for B2g bustage. 2012-04-14 09:29:41 +02:00
Kyle Machulis
2b841aaa61 Bug 732639: DBus Thread Implementation for B2G Bluetooth r=cjones
--HG--
extra : rebase_source : 564ff82ed63cb02ab99204c572baad6a5e761376
2012-04-13 22:40:09 -07:00