diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserver_8h-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserver_8h-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ - -
-00001 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -00002 // All rights reserved. -00003 // This component and the accompanying materials are made available -00004 // under the terms of "Eclipse Public License v1.0" -00005 // which accompanies this distribution, and is available -00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". -00007 // -00008 // Initial Contributors: -00009 // Nokia Corporation - initial contribution. -00010 // -00011 // Contributors: -00012 // -00013 // Description: -00014 // Defines CSecureServer, CSecureServerSession and CSecureServerSubSession classes. -00015 // It also defines the constants that form the security policy for the server. -00016 // -00017 -00018 -00019 -00024 #ifndef __SECURESERVER_H__ -00025 #define __SECURESERVER_H__ -00026 -00027 #include <e32svr.h> -00028 #include <e32uid.h> -00029 #include <e32math.h> -00030 #include <f32file.h> -00031 -00036 const TUint KDefaultHeapSize=0x10000; -00037 -00043 enum TSecureServerPanic -00044 { -00048 EBadRequest = 1, -00052 EDescriptorNonNumeric, -00056 EMainSchedulerError, -00060 EServerCreateServer, -00064 EServerStartServer, -00068 ECreateTrapCleanup, -00072 EBadSubsessionHandle, -00076 ESecureServerSecurityPolicy -00077 }; -00078 -00083 const TInt KSecureServerRangeCount = 5; -00084 -00089 const TInt KSecureServerRanges[KSecureServerRangeCount] = -00090 { -00094 0, -00098 5, -00102 6, -00106 11, -00110 13 -00111 }; -00112 -00117 const CPolicyServer::TPolicyElement KSecureServerElements[] = -00118 { -00122 _INIT_SECURITY_POLICY_S0(0x70fffff0), -00126 {_INIT_SECURITY_POLICY_C1(ECapabilityReadDeviceData | ECapabilityWriteDeviceData), CPolicyServer::EFailClient} -00127 }; -00128 -00133 const TUint8 KSecureServerElementsIndex[KSecureServerRangeCount] = -00134 { -00139 CPolicyServer::EAlwaysPass, -00144 0, -00149 CPolicyServer::ECustomCheck, -00154 1, -00159 CPolicyServer::ENotSupported -00160 }; -00161 -00167 const CPolicyServer::TPolicy KSecureServerPolicy = -00168 { -00172 CPolicyServer::EAlwaysPass, -00173 KSecureServerRangeCount, -00174 KSecureServerRanges, -00175 KSecureServerElementsIndex, -00176 KSecureServerElements -00177 }; -00178 -00190 class CSecureServer : public CPolicyServer -00191 { -00192 public: -00193 CSession2* NewSessionL(const TVersion &aVersion,const RMessage2& aMessage) const; -00194 static CSecureServer* NewL(CActive::TPriority aActiveObjectPriority); -00195 static TInt ThreadFunction(TAny* aStarted); -00196 static void PanicServer(TSecureServerPanic aPanic); -00197 CPolicyServer::TCustomResult CustomSecurityCheckL(const RMessage2 &aMsg, TInt &aAction, TSecurityInfo &aMissing); -00198 CObjectCon* NewContainerL(); -00199 void RemoveContainer(CObjectCon *aCon); -00200 ~CSecureServer(); -00201 private : -00202 CSecureServer(CActive::TPriority aActiveObjectPriority); -00203 void ConstructL(); -00204 -00205 private: -00209 CObjectConIx* iContainerIndex; -00210 }; -00211 -00212 class CSecureServerSubSession; -00213 -00220 class CSecureServerSession : public CSession2 -00221 { -00222 public: -00223 static CSecureServerSession* NewL(); -00224 void CreateL(); -00225 void ServiceL(const RMessage2& aMessage); -00226 void NewCounterL(const RMessage2& aMessage); -00227 void CloseSession(); -00228 void NumResourcesL(const RMessage2& aMessage); -00229 CSecureServerSubSession* CounterFromHandle(const RMessage2& aMessage,TInt aHandle); -00230 void DeleteCounter(TInt aHandle); -00231 TInt CountResources(); -00232 void PanicClient(const RMessage2& aMessage,TInt aPanic) const; -00233 CSecureServerSession(); -00234 private: -00238 CObjectCon* iContainer; -00242 CObjectIx* iCountersObjectIndex; -00247 TInt iResourceCount; -00248 }; -00249 -00256 class CSecureServerSubSession : public CObject -00257 { -00258 public: -00259 static CSecureServerSubSession* NewL(CSecureServerSession* aSession); -00260 CSecureServerSubSession(CSecureServerSession* aSession); -00261 void ConstructL(CSecureServerSession* aSession); -00262 void SetFromStringL(const RMessage2& aMessage); -00263 void Increase(); -00264 void IncreaseBy(const RMessage2& aMessage); -00265 void Decrease(); -00266 void DecreaseBy(const RMessage2& aMessage); -00267 void Reset(); -00268 void CounterValueL(const RMessage2& aMessage); -00269 void SaveCounterValueL(); -00270 void SetCounterValueFromFileL(); -00271 -00272 protected: -00276 CSecureServerSession* iSession; -00277 -00278 private: -00282 TInt iCount; -00283 }; -00284 -00285 #endif -