localisation/apparchitecture/tef/TNonNative/TNonNativeRec.cpp
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/TNonNative/TNonNativeRec.cpp	Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,161 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This recognizer is part of the supporting test code for T_NonNativeAppsStep.CPP
+// This recognizer only exists to associate the document names defined in T_NonNativeAppsStep.h 
+// with the TstNonNativeApp.exe application.
+// This enables T_NonNativeAppsSt ep.CPP to launch TstNonNativeApp.app by starting the document names.
+// 
+//
+
+
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <E32STD.H>
+#include <E32BASE.H>
+#include <APMSTD.H>
+#include <APMREC.H>
+#include <F32FILE.H>
+
+#include <apfrec.h>
+#include <ImplementationProxy.h> 
+
+_LIT8(KLit8_DataType_Gif, "x-epoc/nna-gif");
+_LIT8(KLit8_DataType_Html, "x-epoc/nna-html");
+_LIT8(KLit8_DataType_Vcard, "x-epoc/nna-vcf");
+_LIT8(KLit8_DataType_plainText, "x-epoc/nna-txt");
+
+const TUid KUidNonNativeRecognizer={0x10207f95};
+const TUint KImplNonNativeRecognizer=0x10207f96;
+
+enum TMimeTypes
+    {
+    EMimeTypeNnt1 = 0,
+    EMimeTypeNnt2,
+    EMimeTypeNnt3,
+    EMimeTypeNnt4,
+    EMimeLast
+    };
+
+_LIT(KLitMimeExtensionNnt1, ".NNA1");
+_LIT(KLitMimeExtensionNnt2, ".NNA2");
+_LIT(KLitMimeExtensionNnt3, ".NNA3");
+_LIT(KLitMimeExtensionNnt4, ".NNA4");
+
+
+// CTNonNativeRec definition
+
+class CTNonNativeRec : public CApaDataRecognizerType
+	{
+public:
+	CTNonNativeRec();
+	static CApaDataRecognizerType* CreateRecognizerL();
+private:
+	// from CApaDataRecognizerType
+	virtual TUint PreferredBufSize();
+	virtual TDataType SupportedDataTypeL(TInt aIndex) const;
+	virtual void DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer);
+	};
+
+
+// CTNonNativeRec implementation
+
+CTNonNativeRec::CTNonNativeRec() 
+	:CApaDataRecognizerType(KUidNonNativeRecognizer, EHigh)
+	{
+	iCountDataTypes = EMimeLast;
+	} 
+
+TUint CTNonNativeRec::PreferredBufSize()
+	{
+	return 0;
+	}
+
+TDataType CTNonNativeRec::SupportedDataTypeL(TInt aIndex) const
+	{
+	if (aIndex == EMimeTypeNnt1)
+		return TDataType(KLit8_DataType_Gif);
+    
+    else if (aIndex == EMimeTypeNnt2)
+		return TDataType(KLit8_DataType_Html);
+    
+    else if (aIndex == EMimeTypeNnt3)
+		return TDataType(KLit8_DataType_Vcard);
+    
+    else if (aIndex == EMimeTypeNnt4)
+		return TDataType(KLit8_DataType_plainText);
+    
+    else
+        return TDataType(KNullDesC8);
+    }
+ 
+
+void CTNonNativeRec::DoRecognizeL(const TDesC& aName, const TDesC8&)
+	{
+
+	// Compare if the file extension is known
+	if (aName.Length() < 5)
+		{
+    	iDataType = TDataType(KNullDesC8); 	
+    	iConfidence = ENotRecognized;
+		return;
+		}
+
+	if (aName.Right(5).CompareF(KLitMimeExtensionNnt1) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_Gif);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtensionNnt2) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_Html);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtensionNnt3) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_Vcard);
+		iConfidence = ECertain;
+		}
+	else if (aName.Right(5).CompareF(KLitMimeExtensionNnt4) == 0)
+		{
+		iDataType = TDataType(KLit8_DataType_plainText);
+		iConfidence = ECertain;
+		}
+    else
+    	{
+    	iDataType = TDataType(KNullDesC8); 	
+    	iConfidence = ENotRecognized;
+    	}
+	}
+
+// stand-alone functions
+
+CApaDataRecognizerType* CTNonNativeRec::CreateRecognizerL()
+	{
+	return new (ELeave) CTNonNativeRec();
+	}
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+	IMPLEMENTATION_PROXY_ENTRY(KImplNonNativeRecognizer, CTNonNativeRec::CreateRecognizerL)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }