Bug 1252841: Convert Bluetooth daemon interfaces to |UniquePtr<>|, r=brsun

This commit is contained in:
Thomas Zimmermann 2016-03-22 11:26:45 +01:00
parent 142791f0a8
commit e4de812e2e
10 changed files with 679 additions and 647 deletions

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonA2dpInterface.h" #include "BluetoothDaemonA2dpInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -54,18 +55,19 @@ BluetoothDaemonA2dpModule::ConnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu(new DaemonSocketPDU(SERVICE_ID, UniquePtr<DaemonSocketPDU> pdu =
OPCODE_CONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONNECT,
6)); // Address 6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -75,18 +77,19 @@ BluetoothDaemonA2dpModule::DisconnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu(new DaemonSocketPDU(SERVICE_ID, UniquePtr<DaemonSocketPDU> pdu =
OPCODE_DISCONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DISCONNECT,
6)); // Address 6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonAvrcpInterface.h" #include "BluetoothDaemonAvrcpInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -54,21 +55,21 @@ BluetoothDaemonAvrcpModule::GetPlayStatusRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_PLAY_STATUS_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_PLAY_STATUS_RSP,
1 + // Play status 1 + // Play status
4 + // Duration 4 + // Duration
4)); // Position 4); // Position
nsresult rv = PackPDU(aPlayStatus, aSongLen, aSongPos, *pdu); nsresult rv = PackPDU(aPlayStatus, aSongLen, aSongPos, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -79,10 +80,10 @@ BluetoothDaemonAvrcpModule::ListPlayerAppAttrRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_LIST_PLAYER_APP_ATTR_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_LIST_PLAYER_APP_ATTR_RSP,
1 + // # Attributes 1 + // # Attributes
aNumAttr)); // Player attributes aNumAttr); // Player attributes
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, uint8_t>(aNumAttr), PackConversion<int, uint8_t>(aNumAttr),
@ -90,11 +91,11 @@ BluetoothDaemonAvrcpModule::ListPlayerAppAttrRspCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -104,21 +105,21 @@ BluetoothDaemonAvrcpModule::ListPlayerAppValueRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_LIST_PLAYER_APP_VALUE_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_LIST_PLAYER_APP_VALUE_RSP,
1 + // # Values 1 + // # Values
aNumVal)); // Player values aNumVal); // Player values
nsresult rv = PackPDU(PackConversion<int, uint8_t>(aNumVal), nsresult rv = PackPDU(PackConversion<int, uint8_t>(aNumVal),
PackArray<uint8_t>(aPVals, aNumVal), *pdu); PackArray<uint8_t>(aPVals, aNumVal), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -129,21 +130,22 @@ BluetoothDaemonAvrcpModule::GetPlayerAppValueRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_PLAYER_APP_VALUE_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_PLAYER_APP_VALUE_RSP,
1 + // # Pairs 1 + // # Pairs
2 * aNumAttrs)); // Attribute-value pairs 2 * aNumAttrs); // Attribute-value pairs
nsresult rv = PackPDU( nsresult rv = PackPDU(
aNumAttrs, aNumAttrs,
BluetoothAvrcpAttributeValuePairs(aIds, aValues, aNumAttrs), *pdu); BluetoothAvrcpAttributeValuePairs(aIds, aValues, aNumAttrs), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -154,20 +156,21 @@ BluetoothDaemonAvrcpModule::GetPlayerAppAttrTextRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_PLAYER_APP_ATTR_TEXT_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_PLAYER_APP_ATTR_TEXT_RSP,
0)); // Dynamically allocated 0); // Dynamically allocated
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, uint8_t>(aNumAttr), PackConversion<int, uint8_t>(aNumAttr),
BluetoothAvrcpAttributeTextPairs(aIds, aTexts, aNumAttr), *pdu); BluetoothAvrcpAttributeTextPairs(aIds, aTexts, aNumAttr), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -178,20 +181,21 @@ BluetoothDaemonAvrcpModule::GetPlayerAppValueTextRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_PLAYER_APP_VALUE_TEXT_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_PLAYER_APP_VALUE_TEXT_RSP,
0)); // Dynamically allocated 0); // Dynamically allocated
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, uint8_t>(aNumVal), PackConversion<int, uint8_t>(aNumVal),
BluetoothAvrcpAttributeTextPairs(aIds, aTexts, aNumVal), *pdu); BluetoothAvrcpAttributeTextPairs(aIds, aTexts, aNumVal), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -202,20 +206,21 @@ BluetoothDaemonAvrcpModule::GetElementAttrRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_ELEMENT_ATTR_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_ELEMENT_ATTR_RSP,
0)); // Dynamically allocated 0); // Dynamically allocated
nsresult rv = PackPDU( nsresult rv = PackPDU(
aNumAttr, aNumAttr,
PackArray<BluetoothAvrcpElementAttribute>(aAttr, aNumAttr), *pdu); PackArray<BluetoothAvrcpElementAttribute>(aAttr, aNumAttr), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -225,19 +230,19 @@ BluetoothDaemonAvrcpModule::SetPlayerAppValueRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_PLAYER_APP_VALUE_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_PLAYER_APP_VALUE_RSP,
1)); // Status code 1); // Status code
nsresult rv = PackPDU(aRspStatus, *pdu); nsresult rv = PackPDU(aRspStatus, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -249,12 +254,12 @@ BluetoothDaemonAvrcpModule::RegisterNotificationRspCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_REGISTER_NOTIFICATION_RSP, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_REGISTER_NOTIFICATION_RSP,
1 + // Event 1 + // Event
1 + // Type 1 + // Type
1 + // Data length 1 + // Data length
256)); // Maximum data length 256); // Maximum data length
BluetoothAvrcpEventParamPair data(aEvent, aParam); BluetoothAvrcpEventParamPair data(aEvent, aParam);
nsresult rv = PackPDU(aEvent, aType, static_cast<uint8_t>(data.GetLength()), nsresult rv = PackPDU(aEvent, aType, static_cast<uint8_t>(data.GetLength()),
@ -262,11 +267,11 @@ BluetoothDaemonAvrcpModule::RegisterNotificationRspCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -276,19 +281,19 @@ BluetoothDaemonAvrcpModule::SetVolumeCmd(uint8_t aVolume,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_VOLUME, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_VOLUME,
1)); // Volume 1); // Volume
nsresult rv = PackPDU(aVolume, *pdu); nsresult rv = PackPDU(aVolume, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonCoreInterface.h" #include "BluetoothDaemonCoreInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -52,15 +53,15 @@ BluetoothDaemonCoreModule::EnableCmd(BluetoothCoreResultHandler* aRes)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_ENABLE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_ENABLE,
0)); 0);
nsresult rv = Send(pdu, aRes); nsresult rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -69,15 +70,15 @@ BluetoothDaemonCoreModule::DisableCmd(BluetoothCoreResultHandler* aRes)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DISABLE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DISABLE,
0)); 0);
nsresult rv = Send(pdu, aRes); nsresult rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -87,15 +88,15 @@ BluetoothDaemonCoreModule::GetAdapterPropertiesCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_ADAPTER_PROPERTIES, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_ADAPTER_PROPERTIES,
0)); 0);
nsresult rv = Send(pdu, aRes); nsresult rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -105,19 +106,19 @@ BluetoothDaemonCoreModule::GetAdapterPropertyCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_ADAPTER_PROPERTY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_ADAPTER_PROPERTY,
0)); 0);
nsresult rv = PackPDU(aType, *pdu); nsresult rv = PackPDU(aType, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -127,19 +128,19 @@ BluetoothDaemonCoreModule::SetAdapterPropertyCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_ADAPTER_PROPERTY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_ADAPTER_PROPERTY,
0)); 0);
nsresult rv = PackPDU(aProperty, *pdu); nsresult rv = PackPDU(aProperty, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -149,19 +150,19 @@ BluetoothDaemonCoreModule::GetRemoteDevicePropertiesCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_REMOTE_DEVICE_PROPERTIES, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_REMOTE_DEVICE_PROPERTIES,
0)); 0);
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -173,19 +174,19 @@ BluetoothDaemonCoreModule::GetRemoteDevicePropertyCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_REMOTE_DEVICE_PROPERTY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_REMOTE_DEVICE_PROPERTY,
0)); 0);
nsresult rv = PackPDU(aRemoteAddr, aType, *pdu); nsresult rv = PackPDU(aRemoteAddr, aType, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -197,19 +198,19 @@ BluetoothDaemonCoreModule::SetRemoteDevicePropertyCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_REMOTE_DEVICE_PROPERTY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_REMOTE_DEVICE_PROPERTY,
0)); 0);
nsresult rv = PackPDU(aRemoteAddr, aProperty, *pdu); nsresult rv = PackPDU(aRemoteAddr, aProperty, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -220,19 +221,19 @@ BluetoothDaemonCoreModule::GetRemoteServiceRecordCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_REMOTE_SERVICE_RECORD, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_REMOTE_SERVICE_RECORD,
0)); 0);
nsresult rv = PackPDU(aRemoteAddr, aUuid, *pdu); nsresult rv = PackPDU(aRemoteAddr, aUuid, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -242,18 +243,19 @@ BluetoothDaemonCoreModule::GetRemoteServicesCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_REMOTE_SERVICES, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_REMOTE_SERVICES,
0);
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -262,15 +264,15 @@ BluetoothDaemonCoreModule::StartDiscoveryCmd(BluetoothCoreResultHandler* aRes)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_START_DISCOVERY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_START_DISCOVERY,
0)); 0);
nsresult rv = Send(pdu, aRes); nsresult rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -279,15 +281,15 @@ BluetoothDaemonCoreModule::CancelDiscoveryCmd(BluetoothCoreResultHandler* aRes)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CANCEL_DISCOVERY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CANCEL_DISCOVERY,
0)); 0);
nsresult rv = Send(pdu, aRes); nsresult rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -298,9 +300,9 @@ BluetoothDaemonCoreModule::CreateBondCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CREATE_BOND, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CREATE_BOND,
0)); 0);
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(aBdAddr, aTransport, *pdu); nsresult rv = PackPDU(aBdAddr, aTransport, *pdu);
@ -310,11 +312,11 @@ BluetoothDaemonCoreModule::CreateBondCmd(const BluetoothAddress& aBdAddr,
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -324,19 +326,19 @@ BluetoothDaemonCoreModule::RemoveBondCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_REMOVE_BOND, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_REMOVE_BOND,
0)); 0);
nsresult rv = PackPDU(aBdAddr, *pdu); nsresult rv = PackPDU(aBdAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -346,19 +348,19 @@ BluetoothDaemonCoreModule::CancelBondCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CANCEL_BOND, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CANCEL_BOND,
0)); 0);
nsresult rv = PackPDU(aBdAddr, *pdu); nsresult rv = PackPDU(aBdAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -370,19 +372,19 @@ BluetoothDaemonCoreModule::PinReplyCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_PIN_REPLY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_PIN_REPLY,
0)); 0);
nsresult rv = PackPDU(aBdAddr, aAccept, aPinCode, *pdu); nsresult rv = PackPDU(aBdAddr, aAccept, aPinCode, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -394,19 +396,19 @@ BluetoothDaemonCoreModule::SspReplyCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SSP_REPLY, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SSP_REPLY,
0)); 0);
nsresult rv = PackPDU(aBdAddr, aVariant, aAccept, aPasskey, *pdu); nsresult rv = PackPDU(aBdAddr, aVariant, aAccept, aPasskey, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -416,19 +418,19 @@ BluetoothDaemonCoreModule::DutModeConfigureCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DUT_MODE_CONFIGURE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DUT_MODE_CONFIGURE,
0)); 0);
nsresult rv = PackPDU(aEnable, *pdu); nsresult rv = PackPDU(aEnable, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -439,20 +441,20 @@ BluetoothDaemonCoreModule::DutModeSendCmd(uint16_t aOpcode,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DUT_MODE_SEND, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DUT_MODE_SEND,
0)); 0);
nsresult rv = PackPDU(aOpcode, aLen, PackArray<uint8_t>(aBuf, aLen), nsresult rv = PackPDU(aOpcode, aLen, PackArray<uint8_t>(aBuf, aLen),
*pdu); *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -463,20 +465,20 @@ BluetoothDaemonCoreModule::LeTestModeCmd(uint16_t aOpcode,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_LE_TEST_MODE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_LE_TEST_MODE,
0)); 0);
nsresult rv = PackPDU(aOpcode, aLen, PackArray<uint8_t>(aBuf, aLen), nsresult rv = PackPDU(aOpcode, aLen, PackArray<uint8_t>(aBuf, aLen),
*pdu); *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonGattInterface.h" #include "BluetoothDaemonGattInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -54,20 +55,20 @@ BluetoothDaemonGattModule::ClientRegisterCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_REGISTER, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_REGISTER,
16)); // Service UUID 16); // Service UUID
nsresult rv = PackPDU(aUuid, *pdu); nsresult rv = PackPDU(aUuid, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -77,19 +78,19 @@ BluetoothDaemonGattModule::ClientUnregisterCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_UNREGISTER, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_UNREGISTER,
4)); // Client Interface 4); // Client Interface
nsresult rv = PackPDU(aClientIf, *pdu); nsresult rv = PackPDU(aClientIf, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -99,21 +100,21 @@ BluetoothDaemonGattModule::ClientScanCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_SCAN, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_SCAN,
4 + // Client Interface 4 + // Client Interface
1)); // Start 1); // Start
nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
PackConversion<bool, uint8_t>(aStart), *pdu); PackConversion<bool, uint8_t>(aStart), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -124,12 +125,12 @@ BluetoothDaemonGattModule::ClientConnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_CONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_CONNECT,
4 + // Client Interface 4 + // Client Interface
6 + // Remote Address 6 + // Remote Address
1 + // Is Direct 1 + // Is Direct
4)); // Transport 4); // Transport
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aClientIf), PackConversion<int, int32_t>(aClientIf),
@ -139,11 +140,11 @@ BluetoothDaemonGattModule::ClientConnectCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -154,11 +155,11 @@ BluetoothDaemonGattModule::ClientDisconnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_DISCONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_DISCONNECT,
4 + // Client Interface 4 + // Client Interface
6 + // Remote Address 6 + // Remote Address
4)); // Connection ID 4); // Connection ID
nsresult rv; nsresult rv;
rv = PackPDU(PackConversion<int, int32_t>(aClientIf), rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
@ -167,11 +168,11 @@ BluetoothDaemonGattModule::ClientDisconnectCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -181,10 +182,10 @@ BluetoothDaemonGattModule::ClientListenCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_LISTEN, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_LISTEN,
4 + // Client Interface 4 + // Client Interface
1)); // Start 1); // Start
nsresult rv; nsresult rv;
rv = PackPDU(PackConversion<int, int32_t>(aClientIf), rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
@ -192,11 +193,11 @@ BluetoothDaemonGattModule::ClientListenCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -207,10 +208,10 @@ BluetoothDaemonGattModule::ClientRefreshCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_REFRESH, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_REFRESH,
4 + // Client Interface 4 + // Client Interface
6)); // Remote Address 6); // Remote Address
nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
aBdAddr, aBdAddr,
@ -218,11 +219,11 @@ BluetoothDaemonGattModule::ClientRefreshCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -233,11 +234,11 @@ BluetoothDaemonGattModule::ClientSearchServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_SEARCH_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_SEARCH_SERVICE,
4 + // Connection ID 4 + // Connection ID
1 + // Filtered 1 + // Filtered
16)); // UUID 16); // UUID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId),
PackConversion<bool, uint8_t>(aFiltered), PackConversion<bool, uint8_t>(aFiltered),
@ -246,11 +247,11 @@ BluetoothDaemonGattModule::ClientSearchServiceCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -262,12 +263,12 @@ BluetoothDaemonGattModule::ClientGetIncludedServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_GET_INCLUDED_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_GET_INCLUDED_SERVICE,
4 + // Connection ID 4 + // Connection ID
18 + // Service ID 18 + // Service ID
1 + // Continuation 1 + // Continuation
18)); // Start Service ID 18); // Start Service ID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
PackConversion<bool, uint8_t>(aContinuation), PackConversion<bool, uint8_t>(aContinuation),
@ -275,11 +276,11 @@ BluetoothDaemonGattModule::ClientGetIncludedServiceCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -291,12 +292,12 @@ BluetoothDaemonGattModule::ClientGetCharacteristicCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_GET_CHARACTERISTIC, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_GET_CHARACTERISTIC,
4 + // Connection ID 4 + // Connection ID
18 + // Service ID 18 + // Service ID
1 + // Continuation 1 + // Continuation
17)); // Start Characteristic ID 17); // Start Characteristic ID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
PackConversion<bool, uint8_t>(aContinuation), PackConversion<bool, uint8_t>(aContinuation),
@ -305,11 +306,11 @@ BluetoothDaemonGattModule::ClientGetCharacteristicCmd(
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -322,13 +323,13 @@ BluetoothDaemonGattModule::ClientGetDescriptorCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_GET_DESCRIPTOR, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_GET_DESCRIPTOR,
4 + // Connection ID 4 + // Connection ID
18 + // Service ID 18 + // Service ID
17 + // Characteristic ID 17 + // Characteristic ID
1 + // Continuation 1 + // Continuation
17)); // Start Descriptor ID 17); // Start Descriptor ID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId),
aServiceId, aCharId, aServiceId, aCharId,
@ -337,11 +338,11 @@ BluetoothDaemonGattModule::ClientGetDescriptorCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -353,23 +354,23 @@ BluetoothDaemonGattModule::ClientReadCharacteristicCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_READ_CHARACTERISTIC, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_READ_CHARACTERISTIC,
4 + // Connection ID 4 + // Connection ID
18 + // Service ID 18 + // Service ID
17 + // Characteristic ID 17 + // Characteristic ID
4)); // Authorization 4); // Authorization
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
aCharId, aAuthReq, *pdu); aCharId, aAuthReq, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -382,8 +383,9 @@ BluetoothDaemonGattModule::ClientWriteCharacteristicCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_WRITE_CHARACTERISTIC, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_WRITE_CHARACTERISTIC,
0);
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
aCharId, aWriteType, aCharId, aWriteType,
@ -392,11 +394,11 @@ BluetoothDaemonGattModule::ClientWriteCharacteristicCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -408,24 +410,24 @@ BluetoothDaemonGattModule::ClientReadDescriptorCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_READ_DESCRIPTOR, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_READ_DESCRIPTOR,
4 + // Connection ID 4 + // Connection ID
18 + // Service ID 18 + // Service ID
17 + // Characteristic ID 17 + // Characteristic ID
17 + // Descriptor ID 17 + // Descriptor ID
4)); // Authorization 4); // Authorization
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
aCharId, aDescriptorId, aAuthReq, *pdu); aCharId, aDescriptorId, aAuthReq, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -439,8 +441,9 @@ BluetoothDaemonGattModule::ClientWriteDescriptorCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_WRITE_DESCRIPTOR, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_WRITE_DESCRIPTOR,
0);
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), aServiceId,
aCharId, aDescriptorId, aWriteType, aCharId, aDescriptorId, aWriteType,
@ -449,11 +452,11 @@ BluetoothDaemonGattModule::ClientWriteDescriptorCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -463,21 +466,21 @@ BluetoothDaemonGattModule::ClientExecuteWriteCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_EXECUTE_WRITE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_EXECUTE_WRITE,
4 + // Connection ID 4 + // Connection ID
4)); // Execute 4); // Execute
nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId), nsresult rv = PackPDU(PackConversion<int, int32_t>(aConnId),
PackConversion<int, int32_t>(aIsExecute), *pdu); PackConversion<int, int32_t>(aIsExecute), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -489,23 +492,23 @@ BluetoothDaemonGattModule::ClientRegisterNotificationCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_REGISTER_NOTIFICATION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_REGISTER_NOTIFICATION,
4 + // Client Interface 4 + // Client Interface
6 + // Remote Address 6 + // Remote Address
18 + // Service ID 18 + // Service ID
17)); // Characteristic ID 17); // Characteristic ID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
aBdAddr, aServiceId, aCharId, *pdu); aBdAddr, aServiceId, aCharId, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -517,23 +520,23 @@ BluetoothDaemonGattModule::ClientDeregisterNotificationCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_DEREGISTER_NOTIFICATION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_DEREGISTER_NOTIFICATION,
4 + // Client Interface 4 + // Client Interface
6 + // Remote Address 6 + // Remote Address
18 + // Service ID 18 + // Service ID
17)); // Characteristic ID 17); // Characteristic ID
nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
aBdAddr, aServiceId, aCharId, *pdu); aBdAddr, aServiceId, aCharId, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -544,21 +547,21 @@ BluetoothDaemonGattModule::ClientReadRemoteRssiCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_READ_REMOTE_RSSI, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_READ_REMOTE_RSSI,
4 + // Client Interface 4 + // Client Interface
6)); // Remote Address 6); // Remote Address
nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aClientIf),
aBdAddr, *pdu); aBdAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -568,19 +571,19 @@ BluetoothDaemonGattModule::ClientGetDeviceTypeCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_GET_DEVICE_TYPE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_GET_DEVICE_TYPE,
6)); // Remote Address 6); // Remote Address
nsresult rv = PackPDU(aBdAddr, *pdu); nsresult rv = PackPDU(aBdAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -595,8 +598,9 @@ BluetoothDaemonGattModule::ClientSetAdvDataCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_SET_ADV_DATA, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_SET_ADV_DATA,
0);
uint16_t manufacturerDataByteLen = uint16_t manufacturerDataByteLen =
aManufacturerData.Length() * sizeof(uint8_t); aManufacturerData.Length() * sizeof(uint8_t);
@ -626,11 +630,11 @@ BluetoothDaemonGattModule::ClientSetAdvDataCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -641,16 +645,16 @@ BluetoothDaemonGattModule::ClientTestCommandCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLIENT_TEST_COMMAND, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLIENT_TEST_COMMAND,
4 + // Command 4 + // Command
6 + // Address 6 + // Address
16 + // UUID 16 + // UUID
2 + // U1 2 + // U1
2 + // U2 2 + // U2
2 + // U3 2 + // U3
2 + // U4 2 + // U4
2)); // U5 2); // U5
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aCommand), PackConversion<int, int32_t>(aCommand),
@ -660,11 +664,11 @@ BluetoothDaemonGattModule::ClientTestCommandCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -674,19 +678,19 @@ BluetoothDaemonGattModule::ServerRegisterCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_REGISTER, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_REGISTER,
16)); // Uuid 16); // Uuid
nsresult rv = PackPDU(aUuid, *pdu); nsresult rv = PackPDU(aUuid, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -696,19 +700,19 @@ BluetoothDaemonGattModule::ServerUnregisterCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_UNREGISTER, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_UNREGISTER,
4)); // Server Interface 4); // Server Interface
nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), *pdu); nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -719,12 +723,12 @@ BluetoothDaemonGattModule::ServerConnectPeripheralCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_CONNECT_PERIPHERAL, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_CONNECT_PERIPHERAL,
4 + // Server Interface 4 + // Server Interface
6 + // Remote Address 6 + // Remote Address
1 + // Is Direct 1 + // Is Direct
4)); // Transport 4); // Transport
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), PackConversion<int, int32_t>(aServerIf),
@ -734,11 +738,11 @@ BluetoothDaemonGattModule::ServerConnectPeripheralCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -749,11 +753,11 @@ BluetoothDaemonGattModule::ServerDisconnectPeripheralCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_DISCONNECT_PERIPHERAL, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_DISCONNECT_PERIPHERAL,
4 + // Server Interface 4 + // Server Interface
6 + // Remote Address 6 + // Remote Address
4)); // Connection Id 4); // Connection Id
nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf),
aBdAddr, aBdAddr,
@ -761,11 +765,11 @@ BluetoothDaemonGattModule::ServerDisconnectPeripheralCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -776,22 +780,22 @@ BluetoothDaemonGattModule::ServerAddServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_ADD_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_ADD_SERVICE,
4 + // Server Interface 4 + // Server Interface
18 + // Service ID 18 + // Service ID
4)); // Number of Handles 4); // Number of Handles
nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), aServiceId, nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), aServiceId,
PackConversion<uint16_t, int32_t>(aNumHandles), *pdu); PackConversion<uint16_t, int32_t>(aNumHandles), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -803,22 +807,22 @@ BluetoothDaemonGattModule::ServerAddIncludedServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_ADD_INCLUDED_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_ADD_INCLUDED_SERVICE,
4 + // Server Interface 4 + // Server Interface
4 + // Service Handle 4 + // Service Handle
4)); // Included Service Handle 4); // Included Service Handle
nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf),
aServiceHandle, aIncludedServiceHandle, *pdu); aServiceHandle, aIncludedServiceHandle, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -830,13 +834,13 @@ BluetoothDaemonGattModule::ServerAddCharacteristicCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_ADD_CHARACTERISTIC, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_ADD_CHARACTERISTIC,
4 + // Server Interface 4 + // Server Interface
4 + // Service Handle 4 + // Service Handle
16 + // UUID 16 + // UUID
4 + // Properties 4 + // Properties
4)); // Permissions 4); // Permissions
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), aServiceHandle, PackConversion<int, int32_t>(aServerIf), aServiceHandle,
@ -846,11 +850,11 @@ BluetoothDaemonGattModule::ServerAddCharacteristicCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -862,12 +866,12 @@ BluetoothDaemonGattModule::ServerAddDescriptorCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_ADD_DESCRIPTOR, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_ADD_DESCRIPTOR,
4 + // Server Interface 4 + // Server Interface
4 + // Service Handle 4 + // Service Handle
16 + // UUID 16 + // UUID
4)); // Permissions 4); // Permissions
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), aServiceHandle, PackConversion<int, int32_t>(aServerIf), aServiceHandle,
@ -876,11 +880,11 @@ BluetoothDaemonGattModule::ServerAddDescriptorCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -891,11 +895,11 @@ BluetoothDaemonGattModule::ServerStartServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_START_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_START_SERVICE,
4 + // Server Interface 4 + // Server Interface
4 + // Service Handle 4 + // Service Handle
4)); // Transport 4); // Transport
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), aServiceHandle, PackConversion<int, int32_t>(aServerIf), aServiceHandle,
@ -903,11 +907,11 @@ BluetoothDaemonGattModule::ServerStartServiceCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -918,21 +922,21 @@ BluetoothDaemonGattModule::ServerStopServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_STOP_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_STOP_SERVICE,
4 + // Server Interface 4 + // Server Interface
4)); // Service Handle 4); // Service Handle
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), aServiceHandle, *pdu); PackConversion<int, int32_t>(aServerIf), aServiceHandle, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -943,21 +947,21 @@ BluetoothDaemonGattModule::ServerDeleteServiceCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_DELETE_SERVICE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_DELETE_SERVICE,
4 + // Server Interface 4 + // Server Interface
4)); // Service Handle 4); // Service Handle
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aServerIf), aServiceHandle, *pdu); PackConversion<int, int32_t>(aServerIf), aServiceHandle, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -969,9 +973,9 @@ BluetoothDaemonGattModule::ServerSendIndicationCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_SEND_INDICATION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_SEND_INDICATION,
0)); 0);
nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf), nsresult rv = PackPDU(PackConversion<int, int32_t>(aServerIf),
aCharacteristicHandle, aCharacteristicHandle,
@ -982,11 +986,11 @@ BluetoothDaemonGattModule::ServerSendIndicationCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -998,9 +1002,9 @@ BluetoothDaemonGattModule::ServerSendResponseCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SERVER_SEND_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SERVER_SEND_RESPONSE,
0)); 0);
nsresult rv = PackPDU( nsresult rv = PackPDU(
PackConversion<int, int32_t>(aConnId), PackConversion<int, int32_t>(aConnId),
@ -1015,11 +1019,11 @@ BluetoothDaemonGattModule::ServerSendResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonHandsfreeInterface.h" #include "BluetoothDaemonHandsfreeInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -59,19 +60,19 @@ BluetoothDaemonHandsfreeModule::ConnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONNECT,
6)); // Address 6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -81,19 +82,19 @@ BluetoothDaemonHandsfreeModule::DisconnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DISCONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DISCONNECT,
6)); // Address 6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -103,19 +104,19 @@ BluetoothDaemonHandsfreeModule::ConnectAudioCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu(
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONNECT_AUDIO, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONNECT_AUDIO,
6)); // Address 6)); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -125,19 +126,19 @@ BluetoothDaemonHandsfreeModule::DisconnectAudioCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DISCONNECT_AUDIO, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DISCONNECT_AUDIO,
6)); // Address 6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -147,9 +148,9 @@ BluetoothDaemonHandsfreeModule::StartVoiceRecognitionCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_START_VOICE_RECOGNITION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_START_VOICE_RECOGNITION,
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
nsresult rv; nsresult rv;
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
@ -158,11 +159,11 @@ BluetoothDaemonHandsfreeModule::StartVoiceRecognitionCmd(
return rv; return rv;
} }
#endif #endif
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -172,9 +173,9 @@ BluetoothDaemonHandsfreeModule::StopVoiceRecognitionCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_STOP_VOICE_RECOGNITION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_STOP_VOICE_RECOGNITION,
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
nsresult rv; nsresult rv;
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
@ -183,11 +184,11 @@ BluetoothDaemonHandsfreeModule::StopVoiceRecognitionCmd(
return rv; return rv;
} }
#endif #endif
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -198,11 +199,11 @@ BluetoothDaemonHandsfreeModule::VolumeControlCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_VOLUME_CONTROL, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_VOLUME_CONTROL,
1 + // Volume type 1 + // Volume type
1 + // Volume 1 + // Volume
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU( nsresult rv = PackPDU(
@ -213,11 +214,11 @@ BluetoothDaemonHandsfreeModule::VolumeControlCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -229,12 +230,12 @@ BluetoothDaemonHandsfreeModule::DeviceStatusNotificationCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DEVICE_STATUS_NOTIFICATION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DEVICE_STATUS_NOTIFICATION,
1 + // Network state 1 + // Network state
1 + // Service type 1 + // Service type
1 + // Signal strength 1 + // Signal strength
1)); // Battery level 1); // Battery level
nsresult rv = PackPDU(aNtkState, aSvcType, nsresult rv = PackPDU(aNtkState, aSvcType,
PackConversion<int, uint8_t>(aSignal), PackConversion<int, uint8_t>(aSignal),
@ -242,11 +243,11 @@ BluetoothDaemonHandsfreeModule::DeviceStatusNotificationCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -257,10 +258,10 @@ BluetoothDaemonHandsfreeModule::CopsResponseCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_COPS_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_COPS_RESPONSE,
0 + // Dynamically allocated 0 + // Dynamically allocated
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(PackCString0(nsDependentCString(aCops)), aRemoteAddr, nsresult rv = PackPDU(PackCString0(nsDependentCString(aCops)), aRemoteAddr,
@ -271,11 +272,11 @@ BluetoothDaemonHandsfreeModule::CopsResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -289,16 +290,16 @@ BluetoothDaemonHandsfreeModule::CindResponseCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CIND_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CIND_RESPONSE,
1 + // Service 1 + // Service
1 + // # Active 1 + // # Active
1 + // # Held 1 + // # Held
1 + // Call state 1 + // Call state
1 + // Signal strength 1 + // Signal strength
1 + // Roaming 1 + // Roaming
1 + // Battery level 1 + // Battery level
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU( nsresult rv = PackPDU(
@ -322,11 +323,11 @@ BluetoothDaemonHandsfreeModule::CindResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -337,10 +338,10 @@ BluetoothDaemonHandsfreeModule::FormattedAtResponseCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_FORMATTED_AT_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_FORMATTED_AT_RESPONSE,
0 + // Dynamically allocated 0 + // Dynamically allocated
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(PackCString0(nsDependentCString(aRsp)), aRemoteAddr, nsresult rv = PackPDU(PackCString0(nsDependentCString(aRsp)), aRemoteAddr,
@ -351,11 +352,11 @@ BluetoothDaemonHandsfreeModule::FormattedAtResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -366,11 +367,11 @@ BluetoothDaemonHandsfreeModule::AtResponseCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_AT_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_AT_RESPONSE,
1 + // AT Response code 1 + // AT Response code
1 + // Error code 1 + // Error code
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(aResponseCode, nsresult rv = PackPDU(aResponseCode,
@ -383,11 +384,11 @@ BluetoothDaemonHandsfreeModule::AtResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -403,16 +404,16 @@ BluetoothDaemonHandsfreeModule::ClccResponseCmd(
NS_ConvertUTF16toUTF8 number(aNumber); NS_ConvertUTF16toUTF8 number(aNumber);
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CLCC_RESPONSE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CLCC_RESPONSE,
1 + // Call index 1 + // Call index
1 + // Call direction 1 + // Call direction
1 + // Call state 1 + // Call state
1 + // Call mode 1 + // Call mode
1 + // Call MPTY 1 + // Call MPTY
1 + // Address type 1 + // Address type
number.Length() + 1 + // Number string + \0 number.Length() + 1 + // Number string + \0
6)); // Address (BlueZ 5.25) 6); // Address (BlueZ 5.25)
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(PackConversion<int, uint8_t>(aIndex), nsresult rv = PackPDU(PackConversion<int, uint8_t>(aIndex),
@ -426,11 +427,11 @@ BluetoothDaemonHandsfreeModule::ClccResponseCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -444,13 +445,13 @@ BluetoothDaemonHandsfreeModule::PhoneStateChangeCmd(
NS_ConvertUTF16toUTF8 number(aNumber); NS_ConvertUTF16toUTF8 number(aNumber);
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_PHONE_STATE_CHANGE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_PHONE_STATE_CHANGE,
1 + // # Active 1 + // # Active
1 + // # Held 1 + // # Held
1 + // Call state 1 + // Call state
1 + // Address type 1 + // Address type
number.Length() + 1)); // Number string + \0 number.Length() + 1); // Number string + \0
nsresult rv = PackPDU(PackConversion<int, uint8_t>(aNumActive), nsresult rv = PackPDU(PackConversion<int, uint8_t>(aNumActive),
PackConversion<int, uint8_t>(aNumHeld), PackConversion<int, uint8_t>(aNumHeld),
@ -459,11 +460,11 @@ BluetoothDaemonHandsfreeModule::PhoneStateChangeCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -475,20 +476,20 @@ BluetoothDaemonHandsfreeModule::ConfigureWbsCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONFIGURE_WBS, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONFIGURE_WBS,
6 + // Address 6 + // Address
1)); // Config 1); // Config
nsresult rv = PackPDU(aRemoteAddr, aConfig, *pdu); nsresult rv = PackPDU(aRemoteAddr, aConfig, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonHidInterface.h" #include "BluetoothDaemonHidInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -54,18 +55,19 @@ BluetoothDaemonHidModule::ConnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONNECT, 6)); // Address MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONNECT,
6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -75,18 +77,19 @@ BluetoothDaemonHidModule::DisconnectCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_DISCONNECT, 6)); // Address MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_DISCONNECT,
6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -96,18 +99,19 @@ BluetoothDaemonHidModule::VirtualUnplugCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_VIRTUAL_UNPLUG, 6)); // Address MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_VIRTUAL_UNPLUG,
6); // Address
nsresult rv = PackPDU(aRemoteAddr, *pdu); nsresult rv = PackPDU(aRemoteAddr, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -119,18 +123,20 @@ BluetoothDaemonHidModule::SetInfoCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_INFO, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_INFO,
6 + // Address
897); // Info
nsresult rv = PackPDU(aRemoteAddr, aHidInfoParam, *pdu); nsresult rv = PackPDU(aRemoteAddr, aHidInfoParam, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -142,20 +148,20 @@ BluetoothDaemonHidModule::GetProtocolCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_PROTOCOL, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_PROTOCOL,
6 + // Address 6 + // Address
1)); // Protocol Mode 1); // Protocol Mode
nsresult rv = PackPDU(aRemoteAddr, aHidProtocolMode, *pdu); nsresult rv = PackPDU(aRemoteAddr, aHidProtocolMode, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -167,20 +173,20 @@ BluetoothDaemonHidModule::SetProtocolCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_PROTOCOL, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_PROTOCOL,
6 + // Remote Address 6 + // Remote Address
1)); // Protocol Mode 1); // Protocol Mode
nsresult rv = PackPDU(aRemoteAddr, aHidProtocolMode, *pdu); nsresult rv = PackPDU(aRemoteAddr, aHidProtocolMode, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -191,22 +197,22 @@ BluetoothDaemonHidModule::GetReportCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_GET_REPORT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_GET_REPORT,
6 + // Address 6 + // Address
1 + // Report Type 1 + // Report Type
1 + // Report ID 1 + // Report ID
2)); // Buffer Size 2); // Buffer Size
nsresult rv = PackPDU(aRemoteAddr, aType, aReportId, aBuffSize, *pdu); nsresult rv = PackPDU(aRemoteAddr, aType, aReportId, aBuffSize, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -217,19 +223,23 @@ BluetoothDaemonHidModule::SetReportCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SET_REPORT, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SET_REPORT,
6 + // Address
1 + // Type
2 + // Length
0); // Dynamically allocated
nsresult rv = PackPDU(aRemoteAddr, aType, aReport, *pdu); nsresult rv = PackPDU(aRemoteAddr, aType, aReport, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }
@ -240,19 +250,22 @@ BluetoothDaemonHidModule::SendDataCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_SEND_DATA, 0)); MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_SEND_DATA,
6 + // Address
2 + // Length
0); // Dynamically allocated
nsresult rv = PackPDU(aRemoteAddr, aDataLen, nsresult rv = PackPDU(aRemoteAddr, aDataLen,
PackArray<uint8_t>(aData, aDataLen), *pdu); PackArray<uint8_t>(aData, aDataLen), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return NS_OK; return NS_OK;
} }

View File

@ -415,7 +415,7 @@ BluetoothDaemonInterface::Init(
mResultHandlerQ.AppendElement(aRes); mResultHandlerQ.AppendElement(aRes);
if (!mProtocol) { if (!mProtocol) {
mProtocol = new BluetoothDaemonProtocol(); mProtocol = MakeUnique<BluetoothDaemonProtocol>();
} }
if (!mListenSocket) { if (!mListenSocket) {
@ -425,7 +425,7 @@ BluetoothDaemonInterface::Init(
// Init, step 1: Listen for command channel... */ // Init, step 1: Listen for command channel... */
if (!mCmdChannel) { if (!mCmdChannel) {
mCmdChannel = new DaemonSocket(mProtocol, this, CMD_CHANNEL); mCmdChannel = new DaemonSocket(mProtocol.get(), this, CMD_CHANNEL);
} else if ( } else if (
NS_WARN_IF(mCmdChannel->GetConnectionStatus() == SOCKET_CONNECTED)) { NS_WARN_IF(mCmdChannel->GetConnectionStatus() == SOCKET_CONNECTED)) {
// Command channel should not be open; let's close it. // Command channel should not be open; let's close it.
@ -568,96 +568,97 @@ BluetoothSetupInterface*
BluetoothDaemonInterface::GetBluetoothSetupInterface() BluetoothDaemonInterface::GetBluetoothSetupInterface()
{ {
if (mSetupInterface) { if (mSetupInterface) {
return mSetupInterface; return mSetupInterface.get();
} }
mSetupInterface = new BluetoothDaemonSetupInterface(mProtocol); mSetupInterface = MakeUnique<BluetoothDaemonSetupInterface>(mProtocol.get());
return mSetupInterface; return mSetupInterface.get();
} }
BluetoothCoreInterface* BluetoothCoreInterface*
BluetoothDaemonInterface::GetBluetoothCoreInterface() BluetoothDaemonInterface::GetBluetoothCoreInterface()
{ {
if (mCoreInterface) { if (mCoreInterface) {
return mCoreInterface; return mCoreInterface.get();
} }
mCoreInterface = new BluetoothDaemonCoreInterface(mProtocol); mCoreInterface = MakeUnique<BluetoothDaemonCoreInterface>(mProtocol.get());
return mCoreInterface; return mCoreInterface.get();
} }
BluetoothSocketInterface* BluetoothSocketInterface*
BluetoothDaemonInterface::GetBluetoothSocketInterface() BluetoothDaemonInterface::GetBluetoothSocketInterface()
{ {
if (mSocketInterface) { if (mSocketInterface) {
return mSocketInterface; return mSocketInterface.get();
} }
mSocketInterface = new BluetoothDaemonSocketInterface(mProtocol); mSocketInterface = MakeUnique<BluetoothDaemonSocketInterface>(mProtocol.get());
return mSocketInterface; return mSocketInterface.get();
}
BluetoothHandsfreeInterface*
BluetoothDaemonInterface::GetBluetoothHandsfreeInterface()
{
if (mHandsfreeInterface) {
return mHandsfreeInterface;
}
mHandsfreeInterface = new BluetoothDaemonHandsfreeInterface(mProtocol);
return mHandsfreeInterface;
}
BluetoothA2dpInterface*
BluetoothDaemonInterface::GetBluetoothA2dpInterface()
{
if (mA2dpInterface) {
return mA2dpInterface;
}
mA2dpInterface = new BluetoothDaemonA2dpInterface(mProtocol);
return mA2dpInterface;
}
BluetoothAvrcpInterface*
BluetoothDaemonInterface::GetBluetoothAvrcpInterface()
{
if (mAvrcpInterface) {
return mAvrcpInterface;
}
mAvrcpInterface = new BluetoothDaemonAvrcpInterface(mProtocol);
return mAvrcpInterface;
}
BluetoothGattInterface*
BluetoothDaemonInterface::GetBluetoothGattInterface()
{
if (mGattInterface) {
return mGattInterface;
}
mGattInterface = new BluetoothDaemonGattInterface(mProtocol);
return mGattInterface;
} }
BluetoothHidInterface* BluetoothHidInterface*
BluetoothDaemonInterface::GetBluetoothHidInterface() BluetoothDaemonInterface::GetBluetoothHidInterface()
{ {
if (mHidInterface) { if (mHidInterface) {
return mHidInterface; return mHidInterface.get();
} }
mHidInterface = new BluetoothDaemonHidInterface(mProtocol); mHidInterface = MakeUnique<BluetoothDaemonHidInterface>(mProtocol.get());
return mHidInterface; return mHidInterface.get();
}
BluetoothHandsfreeInterface*
BluetoothDaemonInterface::GetBluetoothHandsfreeInterface()
{
if (mHandsfreeInterface) {
return mHandsfreeInterface.get();
}
mHandsfreeInterface =
MakeUnique<BluetoothDaemonHandsfreeInterface>(mProtocol.get());
return mHandsfreeInterface.get();
}
BluetoothA2dpInterface*
BluetoothDaemonInterface::GetBluetoothA2dpInterface()
{
if (mA2dpInterface) {
return mA2dpInterface.get();
}
mA2dpInterface = MakeUnique<BluetoothDaemonA2dpInterface>(mProtocol.get());
return mA2dpInterface.get();
}
BluetoothAvrcpInterface*
BluetoothDaemonInterface::GetBluetoothAvrcpInterface()
{
if (mAvrcpInterface) {
return mAvrcpInterface.get();
}
mAvrcpInterface = MakeUnique<BluetoothDaemonAvrcpInterface>(mProtocol.get());
return mAvrcpInterface.get();
}
BluetoothGattInterface*
BluetoothDaemonInterface::GetBluetoothGattInterface()
{
if (mGattInterface) {
return mGattInterface.get();
}
mGattInterface = MakeUnique<BluetoothDaemonGattInterface>(mProtocol.get());
return mGattInterface.get();
} }
// |DaemonSocketConsumer|, |ListenSocketConsumer| // |DaemonSocketConsumer|, |ListenSocketConsumer|
@ -679,7 +680,7 @@ BluetoothDaemonInterface::OnConnectSuccess(int aIndex)
case CMD_CHANNEL: case CMD_CHANNEL:
// Init, step 3: Listen for notification channel... // Init, step 3: Listen for notification channel...
if (!mNtfChannel) { if (!mNtfChannel) {
mNtfChannel = new DaemonSocket(mProtocol, this, NTF_CHANNEL); mNtfChannel = new DaemonSocket(mProtocol.get(), this, NTF_CHANNEL);
} else if ( } else if (
NS_WARN_IF(mNtfChannel->GetConnectionStatus() == SOCKET_CONNECTED)) { NS_WARN_IF(mNtfChannel->GetConnectionStatus() == SOCKET_CONNECTED)) {
/* Notification channel should not be open; let's close it. */ /* Notification channel should not be open; let's close it. */

View File

@ -10,6 +10,7 @@
#include "BluetoothInterface.h" #include "BluetoothInterface.h"
#include "mozilla/ipc/DaemonSocketConsumer.h" #include "mozilla/ipc/DaemonSocketConsumer.h"
#include "mozilla/ipc/ListenSocketConsumer.h" #include "mozilla/ipc/ListenSocketConsumer.h"
#include "mozilla/UniquePtr.h"
namespace mozilla { namespace mozilla {
namespace ipc { namespace ipc {
@ -88,18 +89,18 @@ private:
RefPtr<mozilla::ipc::ListenSocket> mListenSocket; RefPtr<mozilla::ipc::ListenSocket> mListenSocket;
RefPtr<mozilla::ipc::DaemonSocket> mCmdChannel; RefPtr<mozilla::ipc::DaemonSocket> mCmdChannel;
RefPtr<mozilla::ipc::DaemonSocket> mNtfChannel; RefPtr<mozilla::ipc::DaemonSocket> mNtfChannel;
nsAutoPtr<BluetoothDaemonProtocol> mProtocol; UniquePtr<BluetoothDaemonProtocol> mProtocol;
nsTArray<RefPtr<BluetoothResultHandler> > mResultHandlerQ; nsTArray<RefPtr<BluetoothResultHandler> > mResultHandlerQ;
nsAutoPtr<BluetoothDaemonSetupInterface> mSetupInterface; UniquePtr<BluetoothDaemonSetupInterface> mSetupInterface;
nsAutoPtr<BluetoothDaemonCoreInterface> mCoreInterface; UniquePtr<BluetoothDaemonCoreInterface> mCoreInterface;
nsAutoPtr<BluetoothDaemonSocketInterface> mSocketInterface; UniquePtr<BluetoothDaemonSocketInterface> mSocketInterface;
nsAutoPtr<BluetoothDaemonHandsfreeInterface> mHandsfreeInterface; UniquePtr<BluetoothDaemonHidInterface> mHidInterface;
nsAutoPtr<BluetoothDaemonA2dpInterface> mA2dpInterface; UniquePtr<BluetoothDaemonHandsfreeInterface> mHandsfreeInterface;
nsAutoPtr<BluetoothDaemonAvrcpInterface> mAvrcpInterface; UniquePtr<BluetoothDaemonA2dpInterface> mA2dpInterface;
nsAutoPtr<BluetoothDaemonGattInterface> mGattInterface; UniquePtr<BluetoothDaemonAvrcpInterface> mAvrcpInterface;
nsAutoPtr<BluetoothDaemonHidInterface> mHidInterface; UniquePtr<BluetoothDaemonGattInterface> mGattInterface;
}; };
END_BLUETOOTH_NAMESPACE END_BLUETOOTH_NAMESPACE

View File

@ -5,6 +5,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */ * You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "BluetoothDaemonSetupInterface.h" #include "BluetoothDaemonSetupInterface.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -61,9 +62,9 @@ BluetoothDaemonSetupModule::RegisterModuleCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_REGISTER_MODULE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_REGISTER_MODULE,
0)); 0);
#if ANDROID_VERSION >= 21 #if ANDROID_VERSION >= 21
nsresult rv = PackPDU(aId, aMode, aMaxNumClients, *pdu); nsresult rv = PackPDU(aId, aMode, aMaxNumClients, *pdu);
@ -73,11 +74,11 @@ BluetoothDaemonSetupModule::RegisterModuleCmd(
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -87,19 +88,19 @@ BluetoothDaemonSetupModule::UnregisterModuleCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_UNREGISTER_MODULE, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_UNREGISTER_MODULE,
0)); 0);
nsresult rv = PackPDU(aId, *pdu); nsresult rv = PackPDU(aId, *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -110,20 +111,20 @@ BluetoothDaemonSetupModule::ConfigurationCmd(
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONFIGURATION, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONFIGURATION,
0)); 0);
nsresult rv = PackPDU( nsresult rv = PackPDU(
aLen, PackArray<BluetoothConfigurationParameter>(aParam, aLen), *pdu); aLen, PackArray<BluetoothConfigurationParameter>(aParam, aLen), *pdu);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }

View File

@ -6,8 +6,9 @@
#include "BluetoothDaemonSocketInterface.h" #include "BluetoothDaemonSocketInterface.h"
#include "BluetoothSocketMessageWatcher.h" #include "BluetoothSocketMessageWatcher.h"
#include "nsXULAppAPI.h" #include "mozilla/UniquePtr.h"
#include "mozilla/unused.h" #include "mozilla/unused.h"
#include "nsXULAppAPI.h"
BEGIN_BLUETOOTH_NAMESPACE BEGIN_BLUETOOTH_NAMESPACE
@ -32,9 +33,9 @@ BluetoothDaemonSocketModule::ListenCmd(BluetoothSocketType aType,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_LISTEN, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_LISTEN,
0)); 0);
nsresult rv = PackPDU( nsresult rv = PackPDU(
aType, aType,
@ -45,11 +46,11 @@ BluetoothDaemonSocketModule::ListenCmd(BluetoothSocketType aType,
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -63,9 +64,9 @@ BluetoothDaemonSocketModule::ConnectCmd(const BluetoothAddress& aBdAddr,
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
nsAutoPtr<DaemonSocketPDU> pdu( UniquePtr<DaemonSocketPDU> pdu =
new DaemonSocketPDU(SERVICE_ID, OPCODE_CONNECT, MakeUnique<DaemonSocketPDU>(SERVICE_ID, OPCODE_CONNECT,
0)); 0);
nsresult rv = PackPDU( nsresult rv = PackPDU(
aBdAddr, aBdAddr,
@ -76,11 +77,11 @@ BluetoothDaemonSocketModule::ConnectCmd(const BluetoothAddress& aBdAddr,
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
rv = Send(pdu, aRes); rv = Send(pdu.get(), aRes);
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
return rv; return rv;
} }
Unused << pdu.forget(); Unused << pdu.release();
return rv; return rv;
} }
@ -100,7 +101,7 @@ public:
} }
private: private:
nsAutoPtr<T> mPtr; UniquePtr<T> mPtr;
}; };
/* |AcceptWatcher| specializes SocketMessageWatcher for Accept /* |AcceptWatcher| specializes SocketMessageWatcher for Accept