epoc32/include/eiksrv.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     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
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #ifndef __EIKSRV_H__
    17 #define __EIKSRV_H__
    18 
    19 #include <eikappui.h>
    20 #include <eikenv.h>
    21 #include <apgtask.h>
    22 #include <vwsappst.h>
    23 #include <eikunder.h>
    24 #include <eikcycledef.h>
    25 
    26 class CDictionaryFileStore;
    27 class CVwsSessionWrapper;
    28 class CEikDebugPreferences;
    29 
    30 const TInt KBufferExpansionRequired = 10;		// Random number chosen to indicate buffer expansion on the client side.
    31 
    32 /**
    33 @internalComponent 
    34 */
    35 enum TEikAppUiServPanic
    36 	{
    37 	EEikSrvDefault,
    38 	EEikSrvSvrCreateServer, // no longer used
    39 	EEikSrvSvrStartServer,
    40 	EEikSrvSrvNotFound,
    41 	EEikSrvBadDescriptor,
    42 	EEikSrvIllegalError,
    43 	EEikSrvBadRequestSequence
    44 	};
    45 
    46 class CEikServAppUiSession;
    47 
    48 NONSHARABLE_CLASS(CEikServAppUiServer) : public CPolicyServer
    49 /**
    50 @internalComponent 
    51 */
    52 	{
    53 	friend class CEikServAppUiSession;
    54 public:
    55 	enum {EPriority=EPriorityAbsoluteHigh};
    56 	IMPORT_C static CEikServAppUiServer* NewL();
    57 	virtual CSession2* NewSessionL(const TVersion &aVersion,const RMessage2& aMessage) const;
    58 	static TInt ThreadFunction(TAny* aStarted);
    59 	CEikAppUi& AppUi(); // non-inline (and non-exported) so that it cannot be accessed outside of the DLL
    60 	~CEikServAppUiServer();
    61 private:
    62 	CEikServAppUiServer(TInt aPriority=EPriority);
    63 	void ConstructL();
    64 	CEikServAppUiSession* NewSessionL();
    65 private:
    66 	CEikAppUi* iAppUi;
    67 	CEikDebugPreferences* iDebugPreferences;
    68 	};
    69 
    70 class MEikServAppUiSessionHandler
    71 /**
    72 @publishedPartner 
    73 @released 
    74 */
    75 	{
    76 public:
    77 	virtual void NotifyAlarmServerOfTaskChangeL() = 0;
    78 	virtual void LaunchTaskListL() = 0;
    79 	virtual void CycleTasksL(enum TTaskCycleDirection aDirection) = 0;
    80 	virtual void SetStatusPaneFlags(TInt aFlags) = 0;
    81 	virtual void SetStatusPaneLayoutL(TInt aLayoutResId) = 0;
    82 	virtual void BlankScreenL() = 0;
    83 	virtual void UnblankScreen() = 0;
    84 	virtual void EnableTaskListL() = 0;
    85 	virtual void Extension(TUid aExtensionUid,const TDesC8& aBuffer,RMessagePtr2 aMessage) = 0;
    86 protected:
    87 	IMPORT_C MEikServAppUiSessionHandler();
    88 private:
    89 	IMPORT_C virtual void MEikServAppUiSessionHandler_Reserved1();
    90 	IMPORT_C virtual void MEikServAppUiSessionHandler_Reserved2();
    91 private:
    92 	TInt iMEikServAppUiSessionHandler_Reserved1;
    93 	};
    94 
    95 class CEikServAppUiSession : public CSession2
    96 /**
    97 @publishedPartner
    98 @released 
    99 */
   100 	{
   101 public:
   102 	IMPORT_C CEikServAppUiSession(MEikServAppUiSessionHandler* aHandler);
   103 	IMPORT_C ~CEikServAppUiSession();
   104 	IMPORT_C virtual void ConstructL();
   105 	IMPORT_C virtual void ServiceL(const RMessage2& aMessage);
   106 	IMPORT_C virtual void ServiceError(const RMessage2& aMessage,TInt aError);
   107 private:
   108 	void PanicClient(const RMessage2& aMessage, TEikAppUiServPanic aCode);
   109 	inline CEikServAppUiServer& Server() {return *STATIC_CAST(CEikServAppUiServer*,CONST_CAST(CServer2*,CSession2::Server()));}
   110 protected:
   111 	IMPORT_C MEikServAppUiSessionHandler* SessionHandler() const;
   112 protected:
   113 	CEikServAppUiServer* iAppUiServer;
   114 	TBool iScreenBlanked;
   115 	MEikServAppUiSessionHandler* iSessionHandler;
   116 private: // below are old obsolete member variables, kept for binary compatibility
   117 	TInt iNotUsed1;
   118 	TInt iNotUsed2;
   119 	};
   120 
   121 
   122 NONSHARABLE_CLASS(CEikPasswordModeCategory) : public CBase
   123 /** Gives access to the system's password mode. 
   124 
   125 The password mode can be passed to a password window, see RWindowBase::PasswordWindow(). 
   126 This is a window that requires the user to enter a password before any further actions can 
   127 be carried out. 
   128 
   129 The possible password modes are enumerated in TPasswordMode. 
   130 
   131 @publishedPartner
   132 @released */
   133 	{
   134 public:
   135 	IMPORT_C static CEikPasswordModeCategory* NewLC(RFs& aFs);
   136 	IMPORT_C ~CEikPasswordModeCategory();
   137 	IMPORT_C void GetPasswordModeL(TPasswordMode& aMode) const; 
   138 	IMPORT_C void SetPasswordModeL(TPasswordMode aMode);
   139 private:
   140 	CEikPasswordModeCategory();
   141 	void ConstructL(RFs& aFs);
   142 private:
   143 	CDictionaryFileStore* iStore;
   144 	};
   145 
   146 class CEikServNotifyServer;
   147 class CNotifierServerExtended;
   148 class CEikServBackupServer;
   149 class CEikServAlarmAlertServer;
   150 class CEikKeyWindow;
   151 class CEikUndertaker;
   152 class CEikPasswordControl;
   153 class CEikTaskListDialog;
   154 class MEikServNotifyAlert;
   155 class MEikServAlarmFactory;
   156 class CEikServDllClose;
   157 
   158 NONSHARABLE_CLASS(TEikServCtrlFactories)
   159 /**
   160 @publishedPartner 
   161 @released 
   162 */
   163 	{
   164 public:
   165 	inline TEikServCtrlFactories();
   166 	inline TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert);
   167 public:
   168 	MEikServNotifyAlert* iAlert;
   169 	MEikServAlarmFactory* iAlarmAlert; // does not own anything
   170 private:
   171 	TInt iTEikServCtrlFactories_Reserved1;
   172 	};
   173 
   174 class MEikServAppUiSessionFactory
   175 /**
   176 @publishedPartner 
   177 @released 
   178 */
   179 	{
   180 public:
   181 	virtual CEikServAppUiSession* CreateSessionL() = 0;
   182 protected:
   183 	IMPORT_C MEikServAppUiSessionFactory();
   184 private:
   185 	IMPORT_C virtual void MEikServAppUiSessionFactory_Reserved1();
   186 	IMPORT_C virtual void MEikServAppUiSessionFactory_Reserved2();
   187 private:
   188 	TInt iMEikServAppUiSessionFactory_Reserved1;
   189 	};
   190 
   191 NONSHARABLE_CLASS(CEikServEnv) : public CEikonEnv
   192 /**
   193 @publishedPartner 
   194 @released 
   195 */
   196 	{
   197 public:
   198 	IMPORT_C CEikServEnv();
   199 	IMPORT_C ~CEikServEnv();
   200 	IMPORT_C void DestroyEnvironment();
   201 public:
   202 	IMPORT_C void SetEikServAppUiSessionFactory(MEikServAppUiSessionFactory* aSessionFactory);
   203 	IMPORT_C MEikServAppUiSessionFactory* EikServAppUiSessionFactory() const;
   204 	IMPORT_C TBool IsTaskListEnabled() const;
   205 	IMPORT_C void EnableTaskList();
   206 public:
   207 	void SetEikServer(CEikServAppUiServer* aServer);
   208 	IMPORT_C void SetUiDll(RLibrary& aDll);
   209 private: // reserved virtuals. do not override!
   210 	IMPORT_C virtual void CEikServEnv_Reserved1();
   211 	IMPORT_C virtual void CEikServEnv_Reserved2();
   212 	IMPORT_C virtual void CEikServEnv_Reserved3();
   213 	IMPORT_C virtual void CEikServEnv_Reserved4();
   214 	IMPORT_C virtual void CEikServEnv_Reserved5();
   215 	IMPORT_C virtual void CEikServEnv_Reserved6();
   216 private: // from CCoeEnv. do not override!
   217 	IMPORT_C void Reserved_1();
   218 	IMPORT_C void Reserved_2();
   219 private:
   220 	RLibrary iUiDll;
   221 	CEikServAppUiServer* iServer;
   222 	MEikServAppUiSessionFactory* iSessionFactory;
   223 	TBool iIsTaskListEnabled;
   224 	TInt iCEikServEnv_Reserved1;
   225 	};
   226 
   227 inline TEikServCtrlFactories::TEikServCtrlFactories()
   228 	: iAlert(NULL), iAlarmAlert(NULL)
   229 	{}
   230 	
   231 inline TEikServCtrlFactories::TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert)
   232 	: iAlert(aAlert), iAlarmAlert(aAlarmAlert)
   233 	{}
   234 
   235 NONSHARABLE_CLASS(CEikServSecureData) : public CBase
   236 /**
   237 @publishedPartner 
   238 @released 
   239 */
   240 	{
   241 public:
   242 	IMPORT_C static void GetInstalledFepNameL(TDes& aName);
   243 	IMPORT_C static void SetInstalledFepNameL(const TDesC& aName, TBool aRaiseFileError);
   244 	IMPORT_C static void OpenFepAttributesL();
   245 	IMPORT_C static void GetFepAttributeL(TUid aAttribUid, TDes8& aAttribData);
   246 	IMPORT_C static void SetFepAttributeL(TUid aAttribUid, const TDesC8& aAttribData);
   247 	IMPORT_C static void CommitFepAttributesL();
   248 	IMPORT_C static void CloseFepAttributes();
   249 	IMPORT_C static CBufBase* GetBufferedSystemColorListL();
   250 	IMPORT_C static void SetBufferedSystemColorListL(const TDesC8& aBuffer);
   251 private:
   252 	CEikServSecureData();
   253 	};
   254 
   255 class TErrorFlagAndId
   256 	{
   257 public:
   258 	TInt iTextId;
   259 	TUint iFlags;
   260 	TBool iIsMemoryAllocatedByErrResolver;
   261 	};
   262 
   263 #endif	// __EIKSRV_H__