/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include namespace AZ { namespace SceneAPI { namespace SceneBuilder { // Implementation of the ImportContextRegistryInterface. class ImportContextRegistryManager : public ImportContextRegistryInterface::Registrar { public: AZ_RTTI(ImportContextRegistryManager, "{d3107473-4f99-4421-b4a8-ece66a922191}", ImportContextRegistry); AZ_CLASS_ALLOCATOR(ImportContextRegistryManager, AZ::SystemAllocator, 0); ImportContextRegistryManager(); ~ImportContextRegistryManager() override; ImportContextRegistryManager(const ImportContextRegistryManager&) = delete; ImportContextRegistryManager& operator=(const ImportContextRegistryManager&) = delete; ImportContextRegistryManager(ImportContextRegistryManager&& other) = delete; ImportContextRegistryManager& operator=(ImportContextRegistryManager&& other) = delete; void RegisterContextProvider(ImportContextProvider* provider) override; void UnregisterContextProvider(ImportContextProvider* provider) override; ImportContextProvider* SelectImportProvider(AZStd::string_view fileExtension) const override; private: AZStd::vector> m_importContextProviders; }; } // namespace SceneBuilder } // namespace SceneAPI } // namespace AZ