imagingandcamerafws/imagingfws/ImageDisplay/src/Resolver/ImageDisplayResolver.h
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Not for public use
       
    15 // 
       
    16 //
       
    17 
       
    18 #ifndef __IMAGEDISPLAYRESOLVER_H__
       
    19 #define __IMAGEDISPLAYRESOLVER_H__
       
    20 
       
    21 #include <e32std.h>
       
    22 #include <ecom/resolver.h>
       
    23 #include <ecom/publicregistry.h>
       
    24 #include <ecom/ecomresolverparams.h>
       
    25 #include "ImageDisplayResolverAPI.h"
       
    26 
       
    27 /** @file
       
    28 	@internalComponent */
       
    29 
       
    30 
       
    31 /**
       
    32  * Help sorting of the plugin list for EMatchString and EMatchMIMEType
       
    33  * by saving the extra sorting criteria.
       
    34  *
       
    35  */
       
    36 class TSortImplInfo
       
    37 	{
       
    38 public:
       
    39 	TSortImplInfo(CImplementationInformation *const aImplInfo, TInt aMatchLevel);
       
    40 public:
       
    41 	CImplementationInformation *const iImplInfo; //Not owned
       
    42 	TInt iMatchLevel;
       
    43 	};
       
    44 
       
    45 /**
       
    46  *
       
    47  *
       
    48  * It selects a plugin by either match string or by image type and sub-type
       
    49  * or can be used to return a list of available types or sub-types. In all
       
    50  * cases it ignores Disabled plugins and also those that have been superceded
       
    51  * by a later version.
       
    52  *
       
    53  */
       
    54 class CImageDisplayResolver : public CResolver
       
    55 	{
       
    56 public:
       
    57 	static CImageDisplayResolver* NewL(MPublicRegistry& aRegistry);
       
    58 
       
    59 	~CImageDisplayResolver();
       
    60 	// from CResolver
       
    61 	TUid IdentifyImplementationL(TUid aInterfaceUid, const TEComResolverParams& aAdditionalParameters) const;
       
    62 	RImplInfoArray* ListAllL(TUid aInterfaceUid, const TEComResolverParams& aAdditionalParameters) const;
       
    63 
       
    64 private:
       
    65 	explicit CImageDisplayResolver(MPublicRegistry& aRegistry);
       
    66 	static TInt SortAsending(const TSortImplInfo& aImpInfo1, const TSortImplInfo& aImpInfo2);
       
    67 	static TInt SortDesending(const TSortImplInfo& aImpInfo1, const TSortImplInfo& aImpInfo2);
       
    68 	};
       
    69 
       
    70 
       
    71 
       
    72 #endif // __IMAGEDISPLAYRESOLVER_H__
       
    73