diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserver_8h_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserver_8h_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,157 @@ + + + + +TB9.2 Example Applications: examples/Base/IPC/secureserver/secureserver.h Source File + + + + + +

examples/Base/IPC/secureserver/secureserver.h

Go to the documentation of this file.
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
+
+
Generated by  + +doxygen 1.6.2
+ +