diff -r 951aeeb3da43 -r eea20ed08f4b appfw/apparchitecture/tef/forceregapps/TForceRegAppRec.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appfw/apparchitecture/tef/forceregapps/TForceRegAppRec.cpp Tue Jun 29 10:40:11 2010 +0300 @@ -0,0 +1,157 @@ +// Copyright (c) 2010 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: +// This recognizer is part of the supporting test code for T_ForceRegStep.CPP +// +// + +/** + @file + @internalComponent - Internal Symbian test code +*/ + +#include +#include +#include +#include +#include + +#include +#include + +_LIT8(KLit8_DataType_ForceRegApp1, "x-epoc/forcregapp1"); +_LIT8(KLit8_DataType_ForceRegApp2, "x-epoc/forcregapp2"); +_LIT8(KLit8_DataType_ForceRegApp3, "x-epoc/forcregapp3"); +_LIT8(KLit8_DataType_ForceRegApp4, "x-epoc/forcregapp4"); + +const TUid KUidForceRegAppRecognizer={0xA0001010}; +const TUint KImplForceRegAppRecognizer=0xA0001010; + +enum TMimeTypes + { + EMimeType1 = 0, + EMimeType2, + EMimeType3, + EMimeType4, + EMimeLast + }; + +_LIT(KLitMimeExtension1, ".FRG1"); +_LIT(KLitMimeExtension2, ".FRG2"); +_LIT(KLitMimeExtension3, ".FRG3"); +_LIT(KLitMimeExtension4, ".FRG4"); + + +// CTForceRegAppRec definition + +class CTForceRegAppRec : public CApaDataRecognizerType + { +public: + CTForceRegAppRec(); + static CApaDataRecognizerType* CreateRecognizerL(); +private: + // from CApaDataRecognizerType + virtual TUint PreferredBufSize(); + virtual TDataType SupportedDataTypeL(TInt aIndex) const; + virtual void DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer); + }; + + +// CTForceRegAppRec implementation + +CTForceRegAppRec::CTForceRegAppRec() + :CApaDataRecognizerType(KUidForceRegAppRecognizer, EHigh) + { + iCountDataTypes = EMimeLast; + } + +TUint CTForceRegAppRec::PreferredBufSize() + { + return 0; + } + +TDataType CTForceRegAppRec::SupportedDataTypeL(TInt aIndex) const + { + if (aIndex == EMimeType1) + return TDataType(KLit8_DataType_ForceRegApp1); + + else if (aIndex == EMimeType2) + return TDataType(KLit8_DataType_ForceRegApp2); + + else if (aIndex == EMimeType3) + return TDataType(KLit8_DataType_ForceRegApp3); + + else if (aIndex == EMimeType4) + return TDataType(KLit8_DataType_ForceRegApp4); + + else + return TDataType(KNullDesC8); + } + + +void CTForceRegAppRec::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(KLitMimeExtension1) == 0) + { + iDataType = TDataType(KLit8_DataType_ForceRegApp1); + iConfidence = ECertain; + } + else if (aName.Right(5).CompareF(KLitMimeExtension2) == 0) + { + iDataType = TDataType(KLit8_DataType_ForceRegApp2); + iConfidence = ECertain; + } + else if (aName.Right(5).CompareF(KLitMimeExtension3) == 0) + { + iDataType = TDataType(KLit8_DataType_ForceRegApp3); + iConfidence = ECertain; + } + else if (aName.Right(5).CompareF(KLitMimeExtension4) == 0) + { + iDataType = TDataType(KLit8_DataType_ForceRegApp4); + iConfidence = ECertain; + } + else + { + iDataType = TDataType(KNullDesC8); + iConfidence = ENotRecognized; + } + } + +// stand-alone functions + +CApaDataRecognizerType* CTForceRegAppRec::CreateRecognizerL() + { + return new (ELeave) CTForceRegAppRec(); + } + +const TImplementationProxy ImplementationTable[] = + { + IMPLEMENTATION_PROXY_ENTRY(KImplForceRegAppRecognizer, CTForceRegAppRec::CreateRecognizerL) + }; + +EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) + { + aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); + return ImplementationTable; + } +