Home | History | Annotate | Download | only in bluetooth
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_MAC_H_
      6 #define DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_MAC_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback.h"
     12 #include "device/bluetooth/bluetooth_profile.h"
     13 
     14 #ifdef __OBJC__
     15 @class IOBluetoothDevice;
     16 #else
     17 class IOBluetoothDevice;
     18 #endif
     19 
     20 namespace device {
     21 
     22 class BluetoothProfileMac : public BluetoothProfile {
     23  public:
     24   // BluetoothProfile override.
     25   virtual void Unregister() OVERRIDE;
     26   virtual void SetConnectionCallback(
     27       const ConnectionCallback& callback) OVERRIDE;
     28 
     29   // Makes an outgoing connection to |device|.
     30   // This method runs |socket_callback_| with the socket and returns true if the
     31   // connection is made successfully.
     32   bool Connect(IOBluetoothDevice* device);
     33 
     34  private:
     35   friend BluetoothProfile;
     36 
     37   BluetoothProfileMac(const std::string& uuid, const std::string& name);
     38   virtual ~BluetoothProfileMac();
     39 
     40   const std::string uuid_;
     41   const std::string name_;
     42   ConnectionCallback connection_callback_;
     43 };
     44 
     45 }  // namespace device
     46 
     47 #endif  // DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_MAC_H_
     48