|
OpenAssetIO
An abstract API for generalising interactions between a host application and an asset management system
|
The hybrid UI Delegate plugin system composes one or more child plugin systems, and selects the first plugin that matches the desired identifier. More...
#include <HybridPluginSystemUIDelegateImplementationFactory.hpp>

Public Types | |
| using | UIDelegateImplementationFactoryInterfaces = std::vector< hostApi::UIDelegateImplementationFactoryInterfacePtr > |
| using | Ptr = HybridPluginSystemUIDelegateImplementationFactoryPtr |
| using | ConstPtr = HybridPluginSystemUIDelegateImplementationFactoryConstPtr |
Public Types inherited from UIDelegateImplementationFactoryInterface | |
| using | Ptr = UIDelegateImplementationFactoryInterfacePtr |
| using | ConstPtr = UIDelegateImplementationFactoryInterfaceConstPtr |
Public Member Functions | |
| Identifiers | identifiers () override |
| Get a list of all UI delegate plugin identifiers known to all child factories. More... | |
| managerApi::UIDelegateInterfacePtr | instantiate (const Identifier &identifier) override |
| Create an instance of the UIDelegateInterface with the specified identifier. More... | |
Public Member Functions inherited from UIDelegateImplementationFactoryInterface | |
| UIDelegateImplementationFactoryInterface (log::LoggerInterfacePtr logger) | |
| Construct an instance of this class. More... | |
| virtual | ~UIDelegateImplementationFactoryInterface () |
| Defaulted polymorphic destructor. More... | |
Static Public Member Functions | |
| static HybridPluginSystemUIDelegateImplementationFactoryPtr | make (UIDelegateImplementationFactoryInterfaces factories, log::LoggerInterfacePtr logger) |
| Construct a new instance. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from UIDelegateImplementationFactoryInterface | |
| const log::LoggerInterfacePtr & | logger () const |
| Get logger instance. More... | |
The hybrid UI Delegate plugin system composes one or more child plugin systems, and selects the first plugin that matches the desired identifier.
A list of factories are provided in priority order. When a plugin with a particular identifier is requested, factories are consulted in the order they were provided to the constructor, and the first factory that responds positively is used to construct the plugin.
Although this class allows multiple plugin systems to be combined, it does not support merging multiple matching plugins into one. This is in contrast to the hybrid manager plugin system.
| using UIDelegateImplementationFactoryInterfaces = std::vector<hostApi::UIDelegateImplementationFactoryInterfacePtr> |
|
overridevirtual |
Get a list of all UI delegate plugin identifiers known to all child factories.
Implements UIDelegateImplementationFactoryInterface.
|
overridevirtual |
Create an instance of the UIDelegateInterface with the specified identifier.
Note that, like any other plugin system, the returned UIDelegateInterface cannot be used until initialized.
Child factories are searched in the order they were provided to the constructor, and the first factory that can instantiate a plugin with the given identifier is used.
| identifier | Identifier of the UIDelegateInterface to instantiate. |
| InputValidationException | if the requested identifier has not been registered as a UI delegate plugin. |
Implements UIDelegateImplementationFactoryInterface.
|
static |
Construct a new instance.
| factories | List of factories to compose. |
| logger | Logger for progress and warnings. |
Copyright 2013-2023 The Foundry Visionmongers Ltd. OpenAssetIO is released under the Apache 2.0 License