// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BluetoothRemoteGATTServer_h #define BluetoothRemoteGATTServer_h #include "bindings/core/v8/ScriptWrappable.h" #include "bindings/modules/v8/UnionTypesModules.h" #include "modules/bluetooth/BluetoothDevice.h" #include "platform/heap/Heap.h" #include "wtf/OwnPtr.h" #include "wtf/PassOwnPtr.h" #include "wtf/text/WTFString.h" namespace blink { class BluetoothDevice; class ScriptPromise; class ScriptPromiseResolver; class ScriptState; // BluetoothRemoteGATTServer provides a way to interact with a connected bluetooth peripheral. class BluetoothRemoteGATTServer final : public GarbageCollectedFinalized , public ScriptWrappable { DEFINE_WRAPPERTYPEINFO(); public: BluetoothRemoteGATTServer(BluetoothDevice*); static BluetoothRemoteGATTServer* create(BluetoothDevice*); void setConnected(bool connected) { m_connected = connected; } // Interface required by Garbage Collectoin: DECLARE_VIRTUAL_TRACE(); // IDL exposed interface: BluetoothDevice* device() { return m_device; } bool connected() { return m_connected; } ScriptPromise connect(ScriptState*); void disconnect(ScriptState*); ScriptPromise getPrimaryService(ScriptState*, const StringOrUnsignedLong& service, ExceptionState&); private: Member m_device; bool m_connected; }; } // namespace blink #endif // BluetoothDevice_h