1 // Copyright 2018 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef DEVICE_VR_ANDROID_ARCORE_ARCORE_DEVICE_PROVIDER_FACTORY_H_ 6 #define DEVICE_VR_ANDROID_ARCORE_ARCORE_DEVICE_PROVIDER_FACTORY_H_ 7 8 #include <memory> 9 10 #include "base/component_export.h" 11 #include "base/macros.h" 12 13 namespace device { 14 15 class VRDeviceProvider; 16 COMPONENT_EXPORT(VR_ARCORE)17class COMPONENT_EXPORT(VR_ARCORE) ArCoreDeviceProviderFactory { 18 public: 19 static std::unique_ptr<device::VRDeviceProvider> Create(); 20 static void Install(std::unique_ptr<ArCoreDeviceProviderFactory> factory); 21 22 virtual ~ArCoreDeviceProviderFactory() = default; 23 24 protected: 25 ArCoreDeviceProviderFactory() = default; 26 27 virtual std::unique_ptr<device::VRDeviceProvider> CreateDeviceProvider() = 0; 28 29 private: 30 DISALLOW_COPY_AND_ASSIGN(ArCoreDeviceProviderFactory); 31 }; 32 33 } // namespace device 34 35 #endif // DEVICE_VR_ANDROID_ARCORE_ARCORE_DEVICE_PROVIDER_FACTORY_H_ 36