epoc32/include/apaflrec.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
//
williamr@2
    15
williamr@2
    16
#if !defined(__APAFLREC_H__)
williamr@2
    17
#define __APAFLREC_H__
williamr@2
    18
williamr@2
    19
#if !defined(__APADEF_H__)
williamr@2
    20
#include <apadef.h>
williamr@2
    21
#endif
williamr@2
    22
#if !defined(__APAID_H__)
williamr@2
    23
#include <apaid.h>
williamr@2
    24
#endif
williamr@2
    25
williamr@2
    26
// classes defined:
williamr@2
    27
class MApaAppStarter;
williamr@2
    28
class CApaAppLocator;
williamr@2
    29
class CApaFileRecognizer;
williamr@2
    30
class CApaFileRecognizerType;
williamr@2
    31
class CFileRecognizerExtension;
williamr@2
    32
//
williamr@2
    33
// classes referenced:
williamr@2
    34
class TApaAppEntry;
williamr@2
    35
class CApaCommandLine;
williamr@2
    36
class RFs;
williamr@2
    37
//
williamr@2
    38
williamr@2
    39
// KUidFileRecognizer is UID[1] for app recognizer dll's (UID[2] identifies a particular identifier)
williamr@2
    40
/**
williamr@2
    41
@publishedAll
williamr@2
    42
@released
williamr@2
    43
*/
williamr@2
    44
#ifdef _UNICODE
williamr@2
    45
#define KUidFileRecognizer KUidFileRecognizer16
williamr@2
    46
#else
williamr@2
    47
#define KUidFileRecognizer KUidFileRecognizer8
williamr@2
    48
#endif
williamr@2
    49
williamr@2
    50
/**
williamr@2
    51
@publishedAll 
williamr@2
    52
@deprecated
williamr@2
    53
*/
williamr@2
    54
const TInt KFileRecognizerUidValue8=0x1000013E;
williamr@2
    55
williamr@2
    56
/**
williamr@2
    57
@publishedAll 
williamr@2
    58
@deprecated
williamr@2
    59
*/
williamr@2
    60
const TUid KUidFileRecognizer8={KFileRecognizerUidValue8};
williamr@2
    61
williamr@2
    62
/**
williamr@2
    63
@publishedAll
williamr@2
    64
@released
williamr@2
    65
*/
williamr@2
    66
const TUid KUidFileRecognizer16={0x10003A37};
williamr@2
    67
//
williamr@2
    68
williamr@2
    69
williamr@2
    70
class CApaAppLocator : public CBase
williamr@2
    71
/**
williamr@2
    72
@internalComponent
williamr@2
    73
*/
williamr@2
    74
	{
williamr@2
    75
public:
williamr@2
    76
	virtual TInt GetAppEntryByUid(TApaAppEntry& aAppEntry,TUid aAppUid)=0;
williamr@2
    77
	virtual TInt GetAppCapabilityByUid(TDes8& aCapabilityBuf,TUid aAppUid)=0;
williamr@2
    78
	};
williamr@2
    79
williamr@2
    80
williamr@2
    81
williamr@2
    82
class CApaFileRecognizer : public CBase
williamr@2
    83
/**
williamr@2
    84
@internalComponent
williamr@2
    85
@deprecated
williamr@2
    86
*/
williamr@2
    87
	{
williamr@2
    88
public:
williamr@2
    89
	//
williamr@2
    90
	IMPORT_C CApaFileRecognizerType* RecognizeFileL(const TDesC& aFullFileName,const TUidType* aUidType=NULL);
williamr@2
    91
	IMPORT_C CApaAppLocator* AppLocator() const;
williamr@2
    92
	//
williamr@2
    93
	IMPORT_C ~CApaFileRecognizer();
williamr@2
    94
protected:
williamr@2
    95
	IMPORT_C CApaFileRecognizer(RFs& aFs);
williamr@2
    96
	IMPORT_C void AddFileRecognizerType(CApaFileRecognizerType* aFileRecognizerType);
williamr@2
    97
	IMPORT_C TInt RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType);
williamr@2
    98
	IMPORT_C void SetAppLocator(CApaAppLocator* aAppLocator); // should be called by child-classes eg during construction
williamr@2
    99
	static inline void SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter);
williamr@2
   100
	IMPORT_C void DestroyRecognizerList();
williamr@2
   101
protected:
williamr@2
   102
	RFs& iFs;
williamr@2
   103
	CApaAppLocator* iAppLocator;
williamr@2
   104
private:
williamr@2
   105
	CApaFileRecognizerType *iFileRecognizerList;
williamr@2
   106
	};
williamr@2
   107
williamr@2
   108
williamr@2
   109
williamr@2
   110
class MApaAppStarter
williamr@2
   111
/** An interface used by the Application Architecture server to start applications.
williamr@2
   112
williamr@2
   113
CEikonEnv is derived from this class.
williamr@2
   114
williamr@2
   115
@publishedPartner
williamr@2
   116
@released
williamr@2
   117
@see CEikonEnv */
williamr@2
   118
	{
williamr@2
   119
public:
williamr@2
   120
	virtual TThreadId StartAppL(const CApaCommandLine& aCommandLine)=0;
williamr@2
   121
protected:
williamr@2
   122
	IMPORT_C MApaAppStarter(); 
williamr@2
   123
private:
williamr@2
   124
	IMPORT_C virtual void MApaAppStarter_Reserved1();
williamr@2
   125
	IMPORT_C virtual void MApaAppStarter_Reserved2();
williamr@2
   126
private:
williamr@2
   127
	TInt iMApaAppStarter_Reserved1;
williamr@2
   128
	};
williamr@2
   129
williamr@2
   130
williamr@2
   131
williamr@2
   132
class CApaFileRecognizerType : public CBase
williamr@2
   133
/**
williamr@2
   134
@publishedPartner
williamr@2
   135
@deprecated
williamr@2
   136
*/
williamr@2
   137
	{
williamr@2
   138
public:
williamr@2
   139
	enum TRecognizedType {EProgram,EDoc,EOtherFile,ENotRecognized};
williamr@2
   140
public:
williamr@2
   141
	virtual TThreadId RunL(TApaCommand aCommand,const TDesC* aDocFileName,const TDesC8* aTailEnd) const=0;
williamr@2
   142
	inline TThreadId RunL(TApaCommand aCommand, const TDesC* aDocFileName) const;
williamr@2
   143
	inline TThreadId RunL(TApaCommand aCommand) const;
williamr@2
   144
	inline TUid AppUid()const;
williamr@2
   145
	inline TUid TypeUid()const;
williamr@2
   146
	inline TRecognizedType Type()const;
williamr@2
   147
	IMPORT_C void Capability(TDes8& aCapabilityBuf)const;
williamr@2
   148
	IMPORT_C void Lock();
williamr@2
   149
	IMPORT_C void Unlock();
williamr@2
   150
protected:
williamr@2
   151
	IMPORT_C CApaFileRecognizerType();
williamr@2
   152
	IMPORT_C ~CApaFileRecognizerType();
williamr@2
   153
	IMPORT_C TThreadId AppRunL(const CApaCommandLine& aCommandLine) const;
williamr@2
   154
private:
williamr@2
   155
	inline void SetAppStarter(MApaAppStarter* aAppStarter); // must be called before AppRunL()
williamr@2
   156
	virtual TRecognizedType DoRecognizeFileL(RFs& aFs,TUidType aUidType)=0;
williamr@2
   157
	TRecognizedType RecognizeFileL(RFs& aFs,const TDesC& aFullFileName,TUidType aUidType);
williamr@2
   158
	TBool Locked()const;
williamr@2
   159
	IMPORT_C virtual void Reserved_1();
williamr@2
   160
public:
williamr@2
   161
	IMPORT_C static CApaFileRecognizerType* CreateFileRecognizerL(TUid aImplUid);
williamr@2
   162
protected:
williamr@2
   163
	CApaFileRecognizer* iFileRecognizer;
williamr@2
   164
	MApaAppStarter* iAppStarter;
williamr@2
   165
	HBufC* iFullFileName;
williamr@2
   166
	TUid iFileType; // type UID of the recognizer file (ie UID[1])
williamr@2
   167
	TUid iAppUid; // UID of the associated app (ie UID[2])
williamr@2
   168
	TRecognizedType iRecognizedType;
williamr@2
   169
	TApaAppCapabilityBuf* iCapabilityBuf;
williamr@2
   170
private:
williamr@2
   171
	CApaFileRecognizerType* iNext;
williamr@2
   172
	TInt iLock;
williamr@2
   173
	CFileRecognizerExtension* iFileRecognizerExtn;
williamr@2
   174
private:
williamr@2
   175
	friend class CApaFileRecognizer;
williamr@2
   176
	};
williamr@2
   177
williamr@2
   178
williamr@2
   179
//
williamr@2
   180
// inlines
williamr@2
   181
//
williamr@2
   182
williamr@2
   183
inline void CApaFileRecognizer::SetAppStarter(CApaFileRecognizerType* aRecognizer,MApaAppStarter* aAppStarter)
williamr@2
   184
	{ aRecognizer->SetAppStarter(aAppStarter); }
williamr@2
   185
williamr@2
   186
inline void CApaFileRecognizerType::SetAppStarter(MApaAppStarter* aAppStarter)
williamr@2
   187
	{ iAppStarter = aAppStarter; }
williamr@2
   188
williamr@2
   189
inline TUid CApaFileRecognizerType::AppUid() const
williamr@2
   190
	{ return iAppUid; }
williamr@2
   191
williamr@2
   192
inline TUid CApaFileRecognizerType::TypeUid() const
williamr@2
   193
	{ return iFileType; }
williamr@2
   194
williamr@2
   195
inline CApaFileRecognizerType::TRecognizedType CApaFileRecognizerType::Type()const
williamr@2
   196
	{ return iRecognizedType; }
williamr@2
   197
williamr@2
   198
inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand, const TDesC* aDocFileName) const
williamr@2
   199
	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as third parameter.
williamr@2
   200
	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
williamr@2
   201
	{ return RunL(aCommand, aDocFileName, NULL); }
williamr@2
   202
williamr@2
   203
inline TThreadId CApaFileRecognizerType::RunL(TApaCommand aCommand) const
williamr@2
   204
	/** Calls RunL(TApaCommand,const TDesC*,const TDesC8*) with NULL as second and third parameter.
williamr@2
   205
	@see CApaFileRecognizerType::RunL(TApaCommand,const TDesC*,const TDesC8*) */
williamr@2
   206
	{ return RunL(aCommand, NULL, NULL); }	
williamr@2
   207
williamr@2
   208
#endif