OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ | 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ |
6 #define DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ | 6 #define DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
| 12 #include "device/bluetooth/bluetooth_uuid.h" |
12 | 13 |
13 namespace device { | 14 namespace device { |
14 | 15 |
15 class BluetoothDevice; | 16 class BluetoothDevice; |
16 class BluetoothProfileMac; | 17 class BluetoothProfileMac; |
17 class BluetoothSocket; | 18 class BluetoothSocket; |
18 class MockBluetoothProfile; | 19 class MockBluetoothProfile; |
19 | 20 |
20 // BluetoothProfile represents an implementation of either a client or server | 21 // BluetoothProfile represents an implementation of either a client or server |
21 // of a particular specified profile (aka service or protocol in other | 22 // of a particular specified profile (aka service or protocol in other |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 }; | 72 }; |
72 | 73 |
73 // Register an implementation of the profile with UUID |uuid| and | 74 // Register an implementation of the profile with UUID |uuid| and |
74 // additional details specified in |options|. The corresponding profile | 75 // additional details specified in |options|. The corresponding profile |
75 // object will be created and returned by |callback|. If the profile cannot | 76 // object will be created and returned by |callback|. If the profile cannot |
76 // be registered, NULL will be passed. | 77 // be registered, NULL will be passed. |
77 // | 78 // |
78 // This pointer is not owned by the receiver, but will not be freed unless | 79 // This pointer is not owned by the receiver, but will not be freed unless |
79 // its Unregister() method is called. | 80 // its Unregister() method is called. |
80 typedef base::Callback<void(BluetoothProfile*)> ProfileCallback; | 81 typedef base::Callback<void(BluetoothProfile*)> ProfileCallback; |
81 static void Register(const std::string& uuid, | 82 static void Register(const BluetoothUUID& uuid, |
82 const Options& options, | 83 const Options& options, |
83 const ProfileCallback& callback); | 84 const ProfileCallback& callback); |
84 | 85 |
85 // Unregister the profile. This deletes the profile object so, once called, | 86 // Unregister the profile. This deletes the profile object so, once called, |
86 // any pointers to the profile should be discarded. | 87 // any pointers to the profile should be discarded. |
87 virtual void Unregister() = 0; | 88 virtual void Unregister() = 0; |
88 | 89 |
89 // Set the connection callback for the profile to |callback|, any successful | 90 // Set the connection callback for the profile to |callback|, any successful |
90 // connection initiated by BluetoothDevice::ConnectToProfile() or incoming | 91 // connection initiated by BluetoothDevice::ConnectToProfile() or incoming |
91 // connections from devices, will have a BluetoothSocket created and passed | 92 // connections from devices, will have a BluetoothSocket created and passed |
92 // to this callback. | 93 // to this callback. |
93 // | 94 // |
94 // The socket will be closed when all references are released; none of the | 95 // The socket will be closed when all references are released; none of the |
95 // BluetoothProfile, or BluetoothAdapter or BluetoothDevice objects are | 96 // BluetoothProfile, or BluetoothAdapter or BluetoothDevice objects are |
96 // guaranteed to hold a reference so this may outlive all of them. | 97 // guaranteed to hold a reference so this may outlive all of them. |
97 typedef base::Callback<void( | 98 typedef base::Callback<void( |
98 const BluetoothDevice*, | 99 const BluetoothDevice*, |
99 scoped_refptr<BluetoothSocket>)> ConnectionCallback; | 100 scoped_refptr<BluetoothSocket>)> ConnectionCallback; |
100 virtual void SetConnectionCallback(const ConnectionCallback& callback) = 0; | 101 virtual void SetConnectionCallback(const ConnectionCallback& callback) = 0; |
101 | 102 |
102 protected: | 103 protected: |
103 BluetoothProfile(); | 104 BluetoothProfile(); |
104 virtual ~BluetoothProfile(); | 105 virtual ~BluetoothProfile(); |
105 }; | 106 }; |
106 | 107 |
107 } // namespace device | 108 } // namespace device |
108 | 109 |
109 #endif // DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ | 110 #endif // DEVICE_BLUETOOTH_BLUETOOTH_PROFILE_H_ |
OLD | NEW |