xml/xmlfw/inc/matchdata.h
changeset 0 e35f40988205
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/xmlfw/inc/matchdata.h	Thu Dec 17 09:29:21 2009 +0200
@@ -0,0 +1,122 @@
+// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Detailed parser information for resolution criteria in XML framework
+// 
+//
+
+/**
+ @file 
+ @publishedAll
+ @released
+*/
+
+
+#ifndef MATCHDATA_H
+#define MATCHDATA_H
+
+#include <e32base.h>
+#include <s32strm.h>
+#include <s32mem.h>
+#include <ecom/implementationinformation.h>
+
+namespace Xml
+{
+
+/**
+The plugin variant string of the default Symbian-provided XML parser plugins.
+@publishedAll
+@released
+*/
+_LIT8(KXmlSymbianPluginVariant, "Symbian");		
+
+/**
+CMatchData class provides detailed parser information for XML framework.
+Client application should use this class to precisely specify the plugin, 
+which should be used as a parsing engine in XML framework.
+
+@publishedAll
+@released
+*/
+
+NONSHARABLE_CLASS(CMatchData) : public CBase
+{
+
+public:
+	CMatchData();
+	~CMatchData();
+	
+	IMPORT_C static CMatchData* NewL();
+	IMPORT_C static CMatchData* NewL(const TDesC8& aPackage);
+	IMPORT_C static CMatchData* NewLC();
+	IMPORT_C static CMatchData* NewLC(const TDesC8& aPackage);
+
+	IMPORT_C void SetMimeTypeL(const TDesC8& aData);
+	IMPORT_C const TPtrC8 MimeType() const;
+
+	IMPORT_C void SetVariantL(const TDesC8& aVariant);
+	IMPORT_C const TPtrC8 Variant() const;
+	
+	IMPORT_C void SetLeaveOnMany(TBool aSetting);
+	IMPORT_C void SetRomOnly(TBool aSetting);
+	IMPORT_C void SetCaseSensitivity(TBool aSetting);
+	
+	IMPORT_C TUid ResolveL(RImplInfoArray& aImplList) const;
+
+public:
+	CMatchData& operator=(const CMatchData & aMatchData);
+	TBool operator==(const CMatchData & aMatchData) const;
+	HBufC8* PackToBufferL() const;
+
+private:
+	void ConstructL(const TDesC8& aPackage);
+	
+	TBool VariantMatch(const TDesC8& aOpaqueField) const;
+	TBool MimeTypeMatch(const TDesC8& aDataField) const;
+	TBool MatchField(const TDesC8& aField, const TDesC8& aMatchString, const TDesC8& aSeparator) const;
+	
+	TBool CaseSensitivity() const;
+	TBool LeaveOnMany() const;
+	TBool RomOnly() const;
+	
+	void ExternalizeL(RWriteStream& aStream) const;
+	void InternalizeL(RReadStream& aStream);		
+
+	TUid SelectSingleParserL(RImplInfoPtrArray& aImplList) const;
+	TBool IsInvalidVariant() const;
+	
+	static TInt SortOrder(const CImplementationInformation &aImpInfo1, 
+							const CImplementationInformation &aImpInfo2);
+private:
+	/** 
+	Mime type requested by client
+	Is matched against one of entries of data_type field in resoure information file
+	*/
+	HBufC8* iMimeType; 
+	
+	/**
+	Variant requested by client
+	Is matched against first entry in opaque_data field of resource information file
+	*/
+	HBufC8* iVariant;
+	
+	/**
+	Additional information for resolution constrains. Bitmap.
+	*/
+	TUint32 iAddInfo;
+};
+
+}
+#endif // MATCHDATA_H
+
+