williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #if !defined(__APFREC_H__) williamr@2: #define __APFREC_H__ williamr@2: williamr@2: #if !defined(__APADEF_H__) williamr@2: #include williamr@2: #endif williamr@2: #if !defined(__APAFLREC_H__) williamr@2: #include williamr@2: #endif williamr@2: williamr@2: #include williamr@2: williamr@2: // classes defined: williamr@2: class CApaScanningFileRecognizer; williamr@2: williamr@2: // williamr@2: // classes referenced: williamr@2: class CApaAppFinder; williamr@2: class TApaAppEntry; williamr@2: class TEntry; williamr@2: class RFs; williamr@2: class TDriveUnit; williamr@2: // williamr@2: williamr@2: // dir in which app recognizers should live - this dir is scanned on all drives williamr@2: williamr@2: /** williamr@2: @internalTechnology williamr@2: */ williamr@2: _LIT(KAppRecognizerSearchPath,"\\System\\Recogs\\"); williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: _LIT(KAppRecognizerSearchString,"?:\\System\\Recogs\\"); williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: _LIT(KAppRecognizerSearchAnyFile,"*"); williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: const TUid KUidFileRecogInterfaceUid={0x101F7D86}; williamr@2: williamr@2: class CApaRecognizerDll; // private class williamr@2: williamr@2: /** Constructs a recognizer type williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: typedef CApaFileRecognizerType* (*CreateCApaFileRecognizerType)(); williamr@2: williamr@2: class CApaScanningFileRecognizer : public CApaFileRecognizer williamr@2: /** williamr@2: @internalComponent williamr@2: @deprecated williamr@2: */ williamr@2: { williamr@2: public: williamr@2: class TRecognizer williamr@2: { williamr@2: friend class CApaRecognizerDll; williamr@2: friend class CT_File1Step; williamr@2: public: williamr@2: TRecognizer(HBufC* aName); williamr@2: inline const TDesC& Name() const; williamr@2: public: williamr@2: //lint --e{1925} suppress "public data member" williamr@2: TUid iUid; williamr@2: TInt iDrive; williamr@2: private: williamr@2: inline TRecognizer(); williamr@2: TRecognizer(const TRecognizer&); williamr@2: TRecognizer& operator=(const TRecognizer&); williamr@2: private: williamr@2: HBufC* iName; williamr@2: }; williamr@2: typedef CArrayFixFlat CRecognizerArray; williamr@2: // williamr@2: private: williamr@2: class CApaBackupOperationObserver : public CBase, public MBackupOperationObserver williamr@2: { williamr@2: public: williamr@2: CApaBackupOperationObserver(CApaScanningFileRecognizer& aRecognizer); williamr@2: ~CApaBackupOperationObserver(); williamr@2: void RegisterObserverL(); williamr@2: williamr@2: virtual void HandleBackupOperationEventL(const TBackupOperationAttributes& aBackupOperationAttributes); williamr@2: TInt UpdateCounter() const; williamr@2: void SetUpdateCounter( TInt aValue ); williamr@2: private: williamr@2: CBaBackupSessionWrapper* iSession; williamr@2: CApaScanningFileRecognizer& iRecognizer; williamr@2: TInt iUpdateCounter; williamr@2: }; williamr@2: friend class CApaScanningFileRecognizer::CApaBackupOperationObserver; williamr@2: public: williamr@2: IMPORT_C static CApaScanningFileRecognizer* NewL(RFs& aFs,MApaAppStarter* aAppStarter); williamr@2: IMPORT_C ~CApaScanningFileRecognizer(); williamr@2: IMPORT_C void ScanForRecognizersL(); williamr@2: IMPORT_C TInt RecognizerCount(); williamr@2: IMPORT_C CRecognizerArray* RecognizerListLC()const; williamr@2: IMPORT_C const TRecognizer& operator[](TInt aIndex)const; williamr@2: IMPORT_C TInt UpdateCounter()const; williamr@2: williamr@2: protected: williamr@2: IMPORT_C CApaScanningFileRecognizer(RFs& aFs,MApaAppStarter* aAppStarter); williamr@2: IMPORT_C void ConstructL(); williamr@2: // williamr@2: private: williamr@2: void ScanDriveL(TInt aDriveNum); williamr@2: void LoadRecognizerL(const TDesC& aFullName,TUid aUid); williamr@2: TInt RemoveRecognizer(CApaRecognizerDll& aDll); williamr@2: void LoadEcomRecognizerL(TDriveUnit& aDrive,TUid aUid); williamr@2: void ScanForEcomRecognizersL(); williamr@2: public: williamr@2: IMPORT_C void SetEcomRecognizersFromListL(const CRecognizerArray& aList); williamr@2: IMPORT_C void SetEcomRecognizerL(const TRecognizer& aRecognizer); williamr@2: private: williamr@2: CApaRecognizerDll* iRecognizerLib; williamr@2: MApaAppStarter* iAppStarter; williamr@2: CApaBackupOperationObserver* iObserver; williamr@2: }; williamr@2: williamr@2: inline const TDesC& CApaScanningFileRecognizer::TRecognizer::Name() const williamr@2: { williamr@2: return *iName; williamr@2: } williamr@2: williamr@2: inline CApaScanningFileRecognizer::TRecognizer::TRecognizer() williamr@2: { williamr@2: } williamr@2: williamr@2: #endif