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 (__APMFNDR_H__)
19 #if !defined(__E32BASE_H__)
22 #if !defined(__F32FILE_H__)
25 #if !defined(__APMREC_H__)
36 class CApaRecognizerDll;
39 class CApaScanningDataRecognizer : public CApaDataRecognizer
48 friend class CApaRecognizerDll;
49 friend class CT_MimeStep;
51 TRecognizer(HBufC* aName);
52 inline const TDesC& Name() const;
59 TRecognizer(const TRecognizer&);
60 TRecognizer operator=(const TRecognizer&);
64 typedef CArrayFixFlat<TRecognizer> CRecognizerArray;
67 class CApaBackupOperationObserver : public CBase, public MBackupOperationObserver
70 CApaBackupOperationObserver(CApaScanningDataRecognizer& aRecognizer);
71 ~CApaBackupOperationObserver();
72 void RegisterObserverL();
74 virtual void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes);
75 TInt UpdateCounter() const;
76 void SetUpdateCounter( TInt aValue );
78 CBaBackupSessionWrapper* iSession;
79 CApaScanningDataRecognizer& iRecognizer;
82 friend class CApaScanningDataRecognizer::CApaBackupOperationObserver;
84 class CApaScanningDataRecognizerExtra : public CBase
87 CApaBackupOperationObserver* iObserver;
88 TBool iRecognizersLoaded;
89 friend class CApaScanningDataRecognizer;
90 friend class CApaBackupOperationObserver;
95 IMPORT_C static CApaScanningDataRecognizer* NewL(RFs& aFs);
96 IMPORT_C static CApaScanningDataRecognizer* NewL(RFs& aFs, TBool aLoadDataRecognizers);
97 IMPORT_C ~CApaScanningDataRecognizer();
98 IMPORT_C void ScanForRecognizersL();
99 IMPORT_C TInt RecognizerCount();
100 IMPORT_C CRecognizerArray* RecognizerListLC()const;
101 IMPORT_C const TRecognizer& operator[](TInt aIndex)const;
102 IMPORT_C TInt UpdateCounter()const;
103 IMPORT_C void LoadRecognizersL();
104 IMPORT_C void UnloadRecognizers();
107 IMPORT_C CApaScanningDataRecognizer(RFs& aFs);
108 IMPORT_C void ConstructL();
110 void ConstructL(TBool aLoadDataRecognizers);
111 void ScanDriveL(TInt aDriveNum);
112 void LoadRecognizerL(const TDesC& aFullName,TUid aUid, const TTime& aTime);
113 TInt RemoveRecognizer(CApaRecognizerDll* aDll);
114 void LoadEcomRecognizerL(TDriveUnit& aDrive,TUid aUid);
115 void ScanForEcomRecognizersL();
117 IMPORT_C void SetEcomRecognizersFromListL(const CRecognizerArray& aList);
118 IMPORT_C void SetEcomRecognizerL(const TRecognizer& aRecognizer);
120 friend class CApaBackupObserver;
121 RPointerArray<CApaRecognizerDll> iRecognizerLib;
122 CApaScanningDataRecognizerExtra* iExtra;
126 class CApaRecognizerDll : public CBase
132 CApaRecognizerDll(HBufC* aName);
133 ~CApaRecognizerDll(); // closes lib and deletes next
135 enum TPresence { ENotPresent, EIsPresent, ESuperseded };
138 CApaRecognizerDll* iNext;
139 CApaScanningDataRecognizer::TRecognizer iId; // cached so that this data can be accessed from other threads (RLibrary cant be used in this case)
140 CApaDataRecognizerType* iRec; // not ownership
148 inline const TDesC& CApaScanningDataRecognizer::TRecognizer::Name() const
153 inline CApaScanningDataRecognizer::TRecognizer::TRecognizer()