williamr@2: // Copyright (c) 2003-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@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: williamr@2: // Detailed parser information for resolution criteria in XML framework williamr@2: // williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef MATCHDATA_H williamr@2: #define MATCHDATA_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: namespace Xml williamr@2: { williamr@2: williamr@2: /** williamr@2: The plugin variant string of the default Symbian-provided XML parser plugins. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: _LIT8(KXmlSymbianPluginVariant, "Symbian"); williamr@2: williamr@2: /** williamr@2: CMatchData class provides detailed parser information for XML framework. williamr@2: Client application should use this class to precisely specify the plugin, williamr@2: which should be used as a parsing engine in XML framework. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: NONSHARABLE_CLASS(CMatchData) : public CBase williamr@2: { williamr@2: williamr@2: public: williamr@2: CMatchData(); williamr@2: ~CMatchData(); williamr@2: williamr@2: IMPORT_C static CMatchData* NewL(); williamr@2: IMPORT_C static CMatchData* NewL(const TDesC8& aPackage); williamr@2: IMPORT_C static CMatchData* NewLC(); williamr@2: IMPORT_C static CMatchData* NewLC(const TDesC8& aPackage); williamr@2: williamr@2: IMPORT_C void SetMimeTypeL(const TDesC8& aData); williamr@2: IMPORT_C const TPtrC8 MimeType() const; williamr@2: williamr@2: IMPORT_C void SetVariantL(const TDesC8& aVariant); williamr@2: IMPORT_C const TPtrC8 Variant() const; williamr@2: williamr@2: IMPORT_C void SetLeaveOnMany(TBool aSetting); williamr@2: IMPORT_C void SetRomOnly(TBool aSetting); williamr@2: IMPORT_C void SetCaseSensitivity(TBool aSetting); williamr@2: williamr@2: IMPORT_C TUid ResolveL(RImplInfoArray& aImplList) const; williamr@2: williamr@2: public: williamr@2: CMatchData& operator=(const CMatchData & aMatchData); williamr@2: TBool operator==(const CMatchData & aMatchData) const; williamr@2: HBufC8* PackToBufferL() const; williamr@2: williamr@2: private: williamr@2: void ConstructL(const TDesC8& aPackage); williamr@2: williamr@2: TBool VariantMatch(const TDesC8& aOpaqueField) const; williamr@2: TBool MimeTypeMatch(const TDesC8& aDataField) const; williamr@2: TBool MatchField(const TDesC8& aField, const TDesC8& aMatchString, const TDesC8& aSeparator) const; williamr@2: williamr@2: TBool CaseSensitivity() const; williamr@2: TBool LeaveOnMany() const; williamr@2: TBool RomOnly() const; williamr@2: williamr@2: void ExternalizeL(RWriteStream& aStream) const; williamr@2: void InternalizeL(RReadStream& aStream); williamr@2: williamr@2: TUid SelectSingleParserL(RImplInfoPtrArray& aImplList) const; williamr@2: TBool IsInvalidVariant() const; williamr@2: williamr@2: static TInt SortOrder(const CImplementationInformation &aImpInfo1, williamr@2: const CImplementationInformation &aImpInfo2); williamr@2: private: williamr@2: /** williamr@2: Mime type requested by client williamr@2: Is matched against one of entries of data_type field in resoure information file williamr@2: */ williamr@2: HBufC8* iMimeType; williamr@2: williamr@2: /** williamr@2: Variant requested by client williamr@2: Is matched against first entry in opaque_data field of resource information file williamr@2: */ williamr@2: HBufC8* iVariant; williamr@2: williamr@2: /** williamr@2: Additional information for resolution constrains. Bitmap. williamr@2: */ williamr@2: TUint32 iAddInfo; williamr@2: }; williamr@2: williamr@2: } williamr@2: #endif // MATCHDATA_H williamr@4: williamr@4: