OpenAssetIO
An abstract API for generalising interactions between a host application and an asset management system
HybridPluginSystemUIDelegateImplementationFactory Class Reference

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>

Inheritance diagram for HybridPluginSystemUIDelegateImplementationFactory:

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::LoggerInterfacePtrlogger () const
 Get logger instance. More...
 

Detailed Description

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.

Member Typedef Documentation

Member Function Documentation

Identifiers identifiers ( )
overridevirtual

Get a list of all UI delegate plugin identifiers known to all child factories.

Returns
List of known UI delegate plugin identifiers.

Implements UIDelegateImplementationFactoryInterface.

managerApi::UIDelegateInterfacePtr instantiate ( const Identifier identifier)
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.

Parameters
identifierIdentifier of the UIDelegateInterface to instantiate.
Returns
Newly created interface.
Exceptions
InputValidationExceptionif the requested identifier has not been registered as a UI delegate plugin.

Implements UIDelegateImplementationFactoryInterface.

Construct a new instance.

Parameters
factoriesList of factories to compose.
loggerLogger for progress and warnings.
Returns
New instance.

The documentation for this class was generated from the following file:
  • /src/src/openassetio-ui/include/openassetio/ui/pluginSystem/HybridPluginSystemUIDelegateImplementationFactory.hpp