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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #if !defined(__APFREC_H__)
19 #if !defined(__APADEF_H__)
22 #if !defined(__APAFLREC_H__)
29 class CApaScanningFileRecognizer;
32 // classes referenced:
40 // dir in which app recognizers should live - this dir is scanned on all drives
45 _LIT(KAppRecognizerSearchPath,"\\System\\Recogs\\");
50 _LIT(KAppRecognizerSearchString,"?:\\System\\Recogs\\");
55 _LIT(KAppRecognizerSearchAnyFile,"*");
60 const TUid KUidFileRecogInterfaceUid={0x101F7D86};
62 class CApaRecognizerDll; // private class
64 /** Constructs a recognizer type
69 typedef CApaFileRecognizerType* (*CreateCApaFileRecognizerType)();
71 class CApaScanningFileRecognizer : public CApaFileRecognizer
80 friend class CApaRecognizerDll;
81 friend class CT_File1Step;
83 TRecognizer(HBufC* aName);
84 inline const TDesC& Name() const;
86 //lint --e{1925} suppress "public data member"
91 TRecognizer(const TRecognizer&);
92 TRecognizer& operator=(const TRecognizer&);
96 typedef CArrayFixFlat<TRecognizer> CRecognizerArray;
99 class CApaBackupOperationObserver : public CBase, public MBackupOperationObserver
102 CApaBackupOperationObserver(CApaScanningFileRecognizer& aRecognizer);
103 ~CApaBackupOperationObserver();
104 void RegisterObserverL();
106 virtual void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
107 TInt UpdateCounter() const;
108 void SetUpdateCounter( TInt aValue );
110 CBaBackupSessionWrapper* iSession;
111 CApaScanningFileRecognizer& iRecognizer;
114 friend class CApaScanningFileRecognizer::CApaBackupOperationObserver;
116 IMPORT_C static CApaScanningFileRecognizer* NewL(RFs& aFs,MApaAppStarter* aAppStarter);
117 IMPORT_C ~CApaScanningFileRecognizer();
118 IMPORT_C void ScanForRecognizersL();
119 IMPORT_C TInt RecognizerCount();
120 IMPORT_C CRecognizerArray* RecognizerListLC()const;
121 IMPORT_C const TRecognizer& operator[](TInt aIndex)const;
122 IMPORT_C TInt UpdateCounter()const;
125 IMPORT_C CApaScanningFileRecognizer(RFs& aFs,MApaAppStarter* aAppStarter);
126 IMPORT_C void ConstructL();
129 void ScanDriveL(TInt aDriveNum);
130 void LoadRecognizerL(const TDesC& aFullName,TUid aUid);
131 TInt RemoveRecognizer(CApaRecognizerDll& aDll);
132 void LoadEcomRecognizerL(TDriveUnit& aDrive,TUid aUid);
133 void ScanForEcomRecognizersL();
135 IMPORT_C void SetEcomRecognizersFromListL(const CRecognizerArray& aList);
136 IMPORT_C void SetEcomRecognizerL(const TRecognizer& aRecognizer);
138 CApaRecognizerDll* iRecognizerLib;
139 MApaAppStarter* iAppStarter;
140 CApaBackupOperationObserver* iObserver;
143 inline const TDesC& CApaScanningFileRecognizer::TRecognizer::Name() const
148 inline CApaScanningFileRecognizer::TRecognizer::TRecognizer()