--- /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
+
+