localisation/apparchitecture/inc/APAFLREC.H
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/inc/APAFLREC.H	Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,208 @@
+// Copyright (c) 1997-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:
+//
+
+#if !defined(__APAFLREC_H__)
+#define __APAFLREC_H__
+
+#if !defined(__APADEF_H__)
+#include <apadef.h>
+#endif
+#if !defined(__APAID_H__)
+#include <apaid.h>
+#endif
+
+// classes defined:
+class MApaAppStarter;
+class CApaAppLocator;
+class CApaFileRecognizer;
+class CApaFileRecognizerType;
+class CFileRecognizerExtension;
+//
+// classes referenced:
+class TApaAppEntry;
+class CApaCommandLine;
+class RFs;
+//
+
+// KUidFileRecognizer is UID[1] for app recognizer dll's (UID[2] identifies a particular identifier)
+/**
+@publishedAll
+@released
+*/
+#ifdef _UNICODE
+#define KUidFileRecognizer KUidFileRecognizer16
+#else
+#define KUidFileRecognizer KUidFileRecognizer8
+#endif
+
+/**
+@publishedAll 
+@deprecated
+*/
+const TInt KFileRecognizerUidValue8=0x1000013E;
+
+/**
+@publishedAll 
+@deprecated
+*/
+const TUid KUidFileRecognizer8={KFileRecognizerUidValue8};
+
+/**
+@publishedAll
+@released
+*/
+const TUid KUidFileRecognizer16={0x10003A37};
+//
+
+
+class CApaAppLocator : public CBase
+/**
+@internalComponent
+*/
+	{
+public:
+	virtual TInt GetAppEntryByUid(TApaAppEntry& aAppEntry,TUid aAppUid)=0;
+	virtual TInt GetAppCapabilityByUid(TDes8& aCapabilityBuf,TUid aAppUid)=0;
+	};
+
+
+
+class CApaFileRecognizer : public CBase
+/**
+@internalComponent
+@deprecated
+*/
+	{
+public:
+	//
+	IMPORT_C CApaFileRecognizerType* RecognizeFileL(const TDesC& aFullFileName,const TUidType* aUidType=NULL);
+	IMPORT_C CApaAppLocator* AppLocator() const;
+	//
+	IMPORT_C ~CApaFileRecognizer();
+protected:
+	IMPORT_C CApaFileRecognizer(RFs& aFs);
+	IMPORT_C void AddFileRecognizerType(CApaFileRecognizerType* aFileRecognizerType);
+	IMPORT_C TInt RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType);
+	IMPORT_C void SetAppLocator(CApaAppLocator* aAppLocator); // should be called by child-classes eg during construction
+	static inline void SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter);
+	IMPORT_C void DestroyRecognizerList();
+protected:
+	RFs& iFs;
+	CApaAppLocator* iAppLocator;
+private:
+	CApaFileRecognizerType *iFileRecognizerList;
+	};
+
+
+
+class MApaAppStarter
+/** An interface used by the Application Architecture server to start applications.
+
+CEikonEnv is derived from this class.
+
+@publishedPartner
+@released
+@see CEikonEnv */
+	{
+public:
+	virtual TThreadId StartAppL(const CApaCommandLine& aCommandLine)=0;
+protected:
+	IMPORT_C MApaAppStarter(); 
+private:
+	IMPORT_C virtual void MApaAppStarter_Reserved1();
+	IMPORT_C virtual void MApaAppStarter_Reserved2();
+private:
+	TInt iMApaAppStarter_Reserved1;
+	};
+
+
+
+class CApaFileRecognizerType : public CBase
+/**
+@publishedPartner
+@deprecated
+*/
+	{
+public:
+	enum TRecognizedType {EProgram,EDoc,EOtherFile,ENotRecognized};
+public:
+	virtual TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName,const TDesC8* aTailEnd) const=0;
+	inline TThreadId RunL(TApaCommand aCommand, const TDesC* aDocFileName) const;
+	inline TThreadId RunL(TApaCommand aCommand) const;
+	inline TUid AppUid()const;
+	inline TUid TypeUid()const;
+	inline TRecognizedType Type()const;
+	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
+	IMPORT_C void Lock();
+	IMPORT_C void Unlock();
+protected:
+	IMPORT_C CApaFileRecognizerType();
+	IMPORT_C ~CApaFileRecognizerType();
+	IMPORT_C TThreadId AppRunL(const CApaCommandLine& aCommandLine) const;
+private:
+	inline void SetAppStarter(MApaAppStarter* aAppStarter); // must be called before AppRunL()
+	virtual TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aUidType)=0;
+	TRecognizedType RecognizeFileL(RFs& aFs,const TDesC& aFullFileName,TUidType aUidType);
+	TBool Locked()const;
+	IMPORT_C virtual void Reserved_1();
+public:
+	IMPORT_C static CApaFileRecognizerType* CreateFileRecognizerL(TUid aImplUid);
+protected:
+	CApaFileRecognizer* iFileRecognizer;
+	MApaAppStarter* iAppStarter;
+	HBufC* iFullFileName;
+	TUid iFileType; // type UID of the recognizer file (ie UID[1])
+	TUid iAppUid; // UID of the associated app (ie UID[2])
+	TRecognizedType iRecognizedType;
+	TApaAppCapabilityBuf* iCapabilityBuf;
+private:
+	CApaFileRecognizerType* iNext;
+	TInt iLock;
+	CFileRecognizerExtension* iFileRecognizerExtn;
+private:
+	friend class CApaFileRecognizer;
+	};
+
+
+//
+// inlines
+//
+
+inline void CApaFileRecognizer::SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter)
+	{ aRecognizer->SetAppStarter(aAppStarter); }
+
+inline void CApaFileRecognizerType::SetAppStarter(MApaAppStarter* aAppStarter)
+	{ iAppStarter = aAppStarter; }
+
+inline TUid CApaFileRecognizerType::AppUid() const
+	{ return iAppUid; }
+
+inline TUid CApaFileRecognizerType::TypeUid() const
+	{ return iFileType; }
+
+inline CApaFileRecognizerType::TRecognizedType CApaFileRecognizerType::Type()const
+	{ return iRecognizedType; }
+
+inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand, const TDesC* aDocFileName) const
+	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as third parameter.
+	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
+	{ return RunL(aCommand, aDocFileName, NULL); }
+
+inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand) const
+	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as second and third parameter.
+	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
+	{ return RunL(aCommand, NULL, NULL); }	
+
+#endif