|
|
|
Location:
resolver.h
Link against: ecom.lib
CResolver
Supported from 7.0
Abstract base class for resolver classes, which select an appropriate interface implementation based on criteria supplied by the client.
A default resolver is provided as part of the ECom framework. If the algorithm used by that is inappropriate, an interface definition can specialise this class to provide another.
Note that resolvers are created by the ECom framework as required,
in response to REComSession::CreateImplementationL() calls that
specify to use a non-default resolver.
|
Defined in CResolver:
CResolver(), IdentifyImplementationL(), ListAllL(), ListAllL(), iRegistry
Inherited from CBase:
operator new()
protected: explicit CResolver(MPublicRegistry& aRegistry);
Constructor that takes a MPublicRegistry, allowing
access to a list of implementations for a particular interface.
Derived classes must supply a public constructor of this form and call the base class constructor.
|
virtual TUid IdentifyImplementationL(TUid aInterfaceUid, const TEComResolverParams& aAdditionalParameters) const = 0;
Identifies the most appropriate implementation of a specified interface.
The TEComResolverParams argument supplies data,
possibly using wildcards, to match against implementations' data identifer
(IMPLEMENTATION_INFO::default_data). If a number of
implementations are equally suitable, any may be selected.
|
|
RImplInfoArray& ListAllL(TUid aInterfaceUid) const;
Lists all the implementations of the specified interface definition.
|
|
|
virtual RImplInfoArray* ListAllL(TUid aInterfaceUid, const TEComResolverParams& aAdditionalParameters) const = 0;
Lists all the implementations of the specified interface definition that satisfy the supplied resolution parameters.
|
|
protected: const MPublicRegistry& iRegistry;
Registry access object, initialised by the constructor.