dom/bluetooth/bluez/BluetoothSocket.cpp

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
     2 /* vim: set ts=2 et sw=2 tw=80: */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #include "BluetoothSocket.h"
     9 #include "BluetoothSocketObserver.h"
    10 #include "BluetoothUnixSocketConnector.h"
    11 #include "nsThreadUtils.h"
    13 using namespace mozilla::ipc;
    14 USING_BLUETOOTH_NAMESPACE
    16 BluetoothSocket::BluetoothSocket(BluetoothSocketObserver* aObserver,
    17                                  BluetoothSocketType aType,
    18                                  bool aAuth,
    19                                  bool aEncrypt)
    20   : mObserver(aObserver)
    21   , mType(aType)
    22   , mAuth(aAuth)
    23   , mEncrypt(aEncrypt)
    24 {
    25   MOZ_ASSERT(aObserver);
    26 }
    28 bool
    29 BluetoothSocket::Connect(const nsACString& aDeviceAddress, int aChannel)
    30 {
    31   MOZ_ASSERT(NS_IsMainThread());
    32   MOZ_ASSERT(!aDeviceAddress.IsEmpty());
    34   nsAutoPtr<BluetoothUnixSocketConnector> c(
    35     new BluetoothUnixSocketConnector(mType, aChannel, mAuth, mEncrypt));
    37   if (!ConnectSocket(c.forget(), aDeviceAddress.BeginReading())) {
    38     nsAutoString addr;
    39     GetAddress(addr);
    40     BT_LOGD("%s failed. Current connected device address: %s",
    41            __FUNCTION__, NS_ConvertUTF16toUTF8(addr).get());
    42     return false;
    43   }
    45   return true;
    46 }
    48 bool
    49 BluetoothSocket::Listen(int aChannel)
    50 {
    51   MOZ_ASSERT(NS_IsMainThread());
    53   nsAutoPtr<BluetoothUnixSocketConnector> c(
    54     new BluetoothUnixSocketConnector(mType, aChannel, mAuth, mEncrypt));
    56   if (!ListenSocket(c.forget())) {
    57     nsAutoString addr;
    58     GetAddress(addr);
    59     BT_LOGD("%s failed. Current connected device address: %s",
    60            __FUNCTION__, NS_ConvertUTF16toUTF8(addr).get());
    61     return false;
    62   }
    64   return true;
    65 }
    67 void
    68 BluetoothSocket::ReceiveSocketData(nsAutoPtr<UnixSocketRawData>& aMessage)
    69 {
    70   MOZ_ASSERT(NS_IsMainThread());
    71   MOZ_ASSERT(mObserver);
    72   mObserver->ReceiveSocketData(this, aMessage);
    73 }
    75 void
    76 BluetoothSocket::OnConnectSuccess()
    77 {
    78   MOZ_ASSERT(NS_IsMainThread());
    79   MOZ_ASSERT(mObserver);
    80   mObserver->OnSocketConnectSuccess(this);
    81 }
    83 void
    84 BluetoothSocket::OnConnectError()
    85 {
    86   MOZ_ASSERT(NS_IsMainThread());
    87   MOZ_ASSERT(mObserver);
    88   mObserver->OnSocketConnectError(this);
    89 }
    91 void
    92 BluetoothSocket::OnDisconnect()
    93 {
    94   MOZ_ASSERT(NS_IsMainThread());
    95   MOZ_ASSERT(mObserver);
    96   mObserver->OnSocketDisconnect(this);
    97 }

mercurial