lafagnosticuifoundation/cone/inc/COEFEP.H
changeset 0 2f259fa3e83a
equal deleted inserted replaced
-1:000000000000 0:2f259fa3e83a
       
     1 // Copyright (c) 1997-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 //
       
    15 
       
    16 #ifndef __COEFEP_H__
       
    17 #define __COEFEP_H__
       
    18 
       
    19 #include <e32base.h>	// class CActive
       
    20 
       
    21 class CCoeEnv;
       
    22 class CRepository;
       
    23 
       
    24 /**
       
    25 The CCoeFepLoader class implements a FEP loader for internal use by Cone. It loads the
       
    26 front-end processor in a high-priority active object which is run as soon as the active-scheduler
       
    27 starts. This enables the front-end processor to be set up before it is loaded.
       
    28 
       
    29 @internalTechnology
       
    30 */
       
    31 class CCoeFepLoader : public CActive
       
    32 	{
       
    33 public:
       
    34 	static CCoeFepLoader* NewL(CCoeEnv& aCoeEnv, CCoeFepLoader*& aOwner);
       
    35 	virtual ~CCoeFepLoader();
       
    36 private:
       
    37 	CCoeFepLoader(CCoeEnv& aCoeEnv, CCoeFepLoader*& aOwner);
       
    38 	// from CActive
       
    39 	virtual void DoCancel();
       
    40 	virtual void RunL();
       
    41 	virtual TInt RunError(TInt aError);
       
    42 private:
       
    43 	CCoeEnv& iCoeEnv;
       
    44 	CCoeFepLoader*& iOwner;
       
    45 	TBool iFirstRunL;
       
    46 	};
       
    47 
       
    48 
       
    49 /**
       
    50 The CCoeFepTracker class implements a FEP tracker for internal use by Cone. It enables
       
    51 the front-end processors in the system to be re-loaded when a new one is installed.
       
    52 
       
    53 @internalTechnology
       
    54 */
       
    55 NONSHARABLE_CLASS(CCoeFepTracker) : public CActive
       
    56 	{
       
    57 public:
       
    58 	static CCoeFepTracker* NewL(CCoeEnv& aCoeEnv);
       
    59 	virtual ~CCoeFepTracker();
       
    60 private:
       
    61 	CCoeFepTracker(CCoeEnv& aCoeEnv, CRepository& aRepository);
       
    62 	void ConstructL();
       
    63 	void Queue();
       
    64 	virtual void DoCancel();
       
    65 	virtual void RunL();
       
    66 private:
       
    67 	CCoeEnv& iCoeEnv;
       
    68 	CRepository& iRepository;
       
    69 	};
       
    70 
       
    71 /**
       
    72 The old FEP architecture identifies FEP implementations by the file name of the
       
    73 polymorphic DLL that implements them. The new secure FEP architecture uses ECom
       
    74 and identifies FEP implementations by their ECom implementation UID.
       
    75 
       
    76 This class provides a common representation for uniquely identifying a FEP and
       
    77 determining its type. This enables both types of FEP to be used in the system
       
    78 at the same time.
       
    79 This representation is used when storing the current FEP in the ini file, and
       
    80 when sending the window group message notifying all apps of a change in FEP.
       
    81 
       
    82 @internalTechnology
       
    83 */
       
    84 class FepName
       
    85 	{
       
    86 public:
       
    87 	static TUid UidFromNameL(const TDesC& aName);
       
    88 	static void NameFromUid(TDes& aName, const TUid& aUid);
       
    89 	};
       
    90 
       
    91 #endif // __COEFEP_H__