namespace device {

class BluetoothAdapter;
class BluetoothRemoteGattCharacteristicAndroid;

// BluetoothGattNotifySessionAndroid implements
// BluetoothGattNotifySession for the Android platform.
//
// TODO(crbug.com/551634): Detect destroyed Characteristic or parents objects.
// TODO(crbug.com/551634): Implement Stop.
class DEVICE_BLUETOOTH_EXPORT BluetoothGattNotifySessionAndroid
    : public device::BluetoothGattNotifySession {
 public:
  explicit BluetoothGattNotifySessionAndroid(
      const std::string& characteristic_identifier);
  ~BluetoothGattNotifySessionAndroid() override;

  // BluetoothGattNotifySession overrides.
  std::string GetCharacteristicIdentifier() const override;
  bool IsActive() override;
  void Stop(const base::Closure& callback) override;

 private:
  // Identifier of the associated characteristic.
  std::string characteristic_id_;

  DISALLOW_COPY_AND_ASSIGN(BluetoothGattNotifySessionAndroid);
};

}  // namespace device

#endif  //  DEVICE_BLUETOOTH_BLUETOOTH_GATT_NOTIFY_SESSION_ANDROID_H_
