| // Copyright 2018 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. |
| |
| #include "device/bluetooth/test/fake_device_information_winrt.h" |
| |
| #include <utility> |
| |
| #include "base/bind.h" |
| #include "base/strings/string_piece.h" |
| #include "base/task_runner_util.h" |
| #include "base/threading/sequenced_task_runner_handle.h" |
| #include "base/win/async_operation.h" |
| #include "base/win/scoped_hstring.h" |
| #include "device/bluetooth/test/fake_device_watcher_winrt.h" |
| |
| namespace device { |
| |
| namespace { |
| |
| using ABI::Windows::Devices::Enumeration::DeviceClass; |
| using ABI::Windows::Devices::Enumeration::DeviceInformation; |
| using ABI::Windows::Devices::Enumeration::DeviceInformationCollection; |
| using ABI::Windows::Devices::Enumeration::DeviceInformationKind; |
| using ABI::Windows::Devices::Enumeration::DeviceThumbnail; |
| using ABI::Windows::Devices::Enumeration::IDeviceInformation; |
| using ABI::Windows::Devices::Enumeration::IDeviceInformationPairing; |
| using ABI::Windows::Devices::Enumeration::IDeviceInformationUpdate; |
| using ABI::Windows::Devices::Enumeration::IDeviceWatcher; |
| using ABI::Windows::Devices::Enumeration::IEnclosureLocation; |
| using ABI::Windows::Foundation::Collections::IIterable; |
| using ABI::Windows::Foundation::Collections::IMapView; |
| using ABI::Windows::Foundation::IAsyncOperation; |
| using Microsoft::WRL::ComPtr; |
| using Microsoft::WRL::Make; |
| |
| } // namespace |
| |
| FakeDeviceInformationWinrt::FakeDeviceInformationWinrt() = default; |
| |
| FakeDeviceInformationWinrt::FakeDeviceInformationWinrt(const char* name) |
| : name_(name) {} |
| |
| FakeDeviceInformationWinrt::FakeDeviceInformationWinrt(std::string name) |
| : name_(std::move(name)) {} |
| |
| FakeDeviceInformationWinrt::FakeDeviceInformationWinrt( |
| ComPtr<IDeviceInformationPairing> pairing) |
| : pairing_(std::move(pairing)) {} |
| |
| FakeDeviceInformationWinrt::~FakeDeviceInformationWinrt() = default; |
| |
| HRESULT FakeDeviceInformationWinrt::get_Id(HSTRING* value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_Name(HSTRING* value) { |
| *value = base::win::ScopedHString::Create(name_).release(); |
| return S_OK; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_IsEnabled(boolean* value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_IsDefault(boolean* value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_EnclosureLocation( |
| IEnclosureLocation** value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_Properties( |
| IMapView<HSTRING, IInspectable*>** value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::Update( |
| IDeviceInformationUpdate* update_info) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::GetThumbnailAsync( |
| IAsyncOperation<DeviceThumbnail*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::GetGlyphThumbnailAsync( |
| IAsyncOperation<DeviceThumbnail*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_Kind(DeviceInformationKind* value) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationWinrt::get_Pairing( |
| IDeviceInformationPairing** value) { |
| return pairing_.CopyTo(value); |
| } |
| |
| FakeDeviceInformationStaticsWinrt::FakeDeviceInformationStaticsWinrt( |
| ComPtr<IDeviceInformation> device_information) |
| : device_information_(std::move(device_information)) {} |
| |
| FakeDeviceInformationStaticsWinrt::~FakeDeviceInformationStaticsWinrt() = |
| default; |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::CreateFromIdAsync( |
| HSTRING device_id, |
| IAsyncOperation<DeviceInformation*>** async_op) { |
| auto operation = Make<base::win::AsyncOperation<DeviceInformation*>>(); |
| base::SequencedTaskRunnerHandle::Get()->PostTask( |
| FROM_HERE, base::BindOnce(operation->callback(), device_information_)); |
| *async_op = operation.Detach(); |
| return S_OK; |
| } |
| |
| HRESULT |
| FakeDeviceInformationStaticsWinrt::CreateFromIdAsyncAdditionalProperties( |
| HSTRING device_id, |
| IIterable<HSTRING>* additional_properties, |
| IAsyncOperation<DeviceInformation*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::FindAllAsync( |
| IAsyncOperation<DeviceInformationCollection*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::FindAllAsyncDeviceClass( |
| DeviceClass device_class, |
| IAsyncOperation<DeviceInformationCollection*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::FindAllAsyncAqsFilter( |
| HSTRING aqs_filter, |
| IAsyncOperation<DeviceInformationCollection*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT |
| FakeDeviceInformationStaticsWinrt::FindAllAsyncAqsFilterAndAdditionalProperties( |
| HSTRING aqs_filter, |
| IIterable<HSTRING>* additional_properties, |
| IAsyncOperation<DeviceInformationCollection*>** async_op) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::CreateWatcher( |
| IDeviceWatcher** watcher) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::CreateWatcherDeviceClass( |
| DeviceClass device_class, |
| IDeviceWatcher** watcher) { |
| return E_NOTIMPL; |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt::CreateWatcherAqsFilter( |
| HSTRING aqs_filter, |
| IDeviceWatcher** watcher) { |
| return Make<FakeDeviceWatcherWinrt>().CopyTo(watcher); |
| } |
| |
| HRESULT FakeDeviceInformationStaticsWinrt:: |
| CreateWatcherAqsFilterAndAdditionalProperties( |
| HSTRING aqs_filter, |
| IIterable<HSTRING>* additional_properties, |
| IDeviceWatcher** watcher) { |
| return E_NOTIMPL; |
| } |
| |
| } // namespace device |