147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Copyright 2014 The Chromium Authors. All rights reserved.
247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Use of this source code is governed by a BSD-style license that can be
347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// found in the LICENSE file.
447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#ifndef CHROMEOS_DBUS_FAKE_BLUETOOTH_SERVICE_SERVICE_PROVIDER_H_
647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define CHROMEOS_DBUS_FAKE_BLUETOOTH_SERVICE_SERVICE_PROVIDER_H_
747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include <string>
947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include <vector>
1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "chromeos/chromeos_export.h"
1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "chromeos/dbus/bluetooth_gatt_service_service_provider.h"
1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "dbus/object_path.h"
1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace chromeos {
1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// FakeBluetoothGattServiceServiceProvider simulates behavior of a local GATT
1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// service object and is used both in test cases in place of a mock and on the
1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Linux desktop.
2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgclass CHROMEOS_EXPORT FakeBluetoothGattServiceServiceProvider
2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org    : public BluetoothGattServiceServiceProvider {
2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org public:
2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  FakeBluetoothGattServiceServiceProvider(
2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org      const dbus::ObjectPath& object_path,
2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org      const std::string& uuid,
2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org      const std::vector<dbus::ObjectPath>& includes);
2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  virtual ~FakeBluetoothGattServiceServiceProvider();
2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  const dbus::ObjectPath& object_path() const { return object_path_; }
3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  const std::string& uuid() const { return uuid_; }
3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org private:
3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  // D-Bus object path of the fake GATT service.
3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  dbus::ObjectPath object_path_;
3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
3647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  // 128-bit GATT service UUID.
3747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  std::string uuid_;
3847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
3947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  // List of included GATT services.
4047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  std::vector<dbus::ObjectPath> includes_;
4147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
4247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org  DISALLOW_COPY_AND_ASSIGN(FakeBluetoothGattServiceServiceProvider);
4347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org};
4447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
4547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org}  // namespace chromeos
4647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org
4747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#endif  // CHROMEOS_DBUS_FAKE_BLUETOOTH_SERVICE_SERVICE_PROVIDER_H_
4847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org