williamr@2: /* williamr@2: * Copyright (c) 2003-2007 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0"" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Predective text input engine user dictionary williamr@2: * class definition. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: #ifndef _PTI_USER_DICTIONARY_H williamr@2: #define _PTI_USER_DICTIONARY_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: williamr@2: /** williamr@2: * A base class for PtiEngine user dictionary implementations. Normally williamr@2: * not needed by a client side application. williamr@2: */ williamr@2: class MPtiUserDictionary williamr@2: { williamr@2: public: williamr@2: /** williamr@2: * Returns user dictionary id value. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return User dictionary id value. williamr@2: */ williamr@2: virtual TInt Id() const = 0; williamr@2: williamr@2: /** williamr@2: * Returns size of user dictionary. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return Size of user dictionary. williamr@2: */ williamr@2: virtual TInt Size() const = 0; williamr@2: williamr@2: /** williamr@2: * Returns Uid for core DLL. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return Uid value for core DLL. williamr@2: */ williamr@2: virtual TInt32 CoreUID() const = 0; williamr@2: williamr@2: /** williamr@2: * Returns a boolean value indicating whether this is the default user dictionary. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return ETrue if this user dictionary is default user dictionary. williamr@2: * EFalse if not. williamr@2: */ williamr@2: virtual TBool IsDefault() const = 0; williamr@2: williamr@2: /** williamr@2: * Reuturns user dictionary file name. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return User dictionary file name. williamr@2: */ williamr@2: virtual TPtrC FileName() const = 0; williamr@2: williamr@2: /** williamr@2: * Returns the amount of free space in user dictionary. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return The Amount of free space in dictionary. williamr@2: * Negative value if the amount of free space williamr@2: * value couldn't be found out. williamr@2: */ williamr@2: virtual TInt SpaceLeft() const = 0; williamr@2: williamr@2: /** williamr@2: * If this flag is set, PtiEngine framework calls williamr@2: * WriteL before exiting. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @return A boolean valua indicating status of the update flag. williamr@2: */ williamr@2: virtual TBool UpdateFlag() const = 0; williamr@2: williamr@2: /** williamr@2: * Set update flag to given value. If update flag is set, PtiEngine tries williamr@2: * to save user dictionary when PtiEngine destructor is called. williamr@2: * williamr@2: * @since S60 V2.6 williamr@2: * @param aFlag New status for the update flag. williamr@2: */ williamr@2: virtual void SetUpdateFlag(TBool aFlag) = 0; williamr@2: }; williamr@2: williamr@2: williamr@2: class CPtiUserDictionary : public CBase, public MPtiUserDictionary williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CPtiUserDictionary* NewL(TInt aMaxSize); williamr@2: IMPORT_C static CPtiUserDictionary* NewL(TDesC& aFileName, TInt aMaxSize); williamr@2: IMPORT_C virtual ~CPtiUserDictionary(); williamr@2: williamr@2: IMPORT_C virtual TInt OpenL(TDesC& aFileName, TInt aMaxSize); williamr@2: IMPORT_C virtual TInt WriteL(TDesC& aFileName); williamr@2: IMPORT_C virtual TInt WriteL(); williamr@2: inline void SetFileName(TDesC& aFileName); williamr@2: inline TInt Id() const; williamr@2: inline void SetId(TInt aId); williamr@2: inline TInt Size() const; williamr@2: inline TInt32 CoreUID() const; williamr@2: inline void SetCoreUID(TInt32 aUid); williamr@2: inline virtual TPtr8 Data(); williamr@2: inline TBool IsDefault() const; williamr@2: inline void SetDefault(TBool aValue); williamr@2: inline TPtrC FileName() const; williamr@2: inline TBool UpdateFlag() const; williamr@2: inline void SetUpdateFlag(TBool aFlag); williamr@2: inline TInt SymbolClass() const; williamr@2: inline void SetSymbolClass(TInt aSymbolClass); williamr@2: IMPORT_C virtual TInt SpaceLeft() const; williamr@2: IMPORT_C virtual void SetDataL(TAny* aData, TInt aLength); williamr@2: williamr@2: protected: williamr@2: IMPORT_C CPtiUserDictionary(); williamr@2: williamr@2: private: williamr@2: void ConstructL(TInt aMaxSize); williamr@2: void ConstructL(TDesC& aFileName, TInt aMaxSize); williamr@2: williamr@2: protected: williamr@2: TFileName iFileName; williamr@2: HBufC8* iData; williamr@2: TInt iId; williamr@2: TInt32 iCoreUID; williamr@2: TBool iDefault; williamr@2: TBool iUpdateFlag; williamr@2: TInt iSymbolClass; williamr@2: TUint32 iChecksum; // Holds checksum of lastest version that was saved to disk. williamr@2: }; williamr@2: williamr@2: #include "PtiUserDictionary.inl" williamr@2: williamr@2: #endif williamr@2: williamr@2: // End of file