diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserverccountserver_8cpp_source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureserverccountserver_8cpp_source.html Tue Mar 30 16:16:55 2010 +0100 @@ -0,0 +1,123 @@ + + +
+ +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 // Contains the implementation of functions described in the CSecureServer class. +00015 // +00016 +00017 +00018 +00022 #include "secureclientandserver.h" +00023 #include "secureserver.h" +00024 +00029 void CSecureServer::PanicServer(TSecureServerPanic aPanic) +00030 { +00031 _LIT(KTxTSecureServer,"SecureServer"); +00032 User::Panic(KTxTSecureServer,aPanic); +00033 } +00034 +00040 CSecureServer* CSecureServer::NewL(CActive::TPriority aActiveObjectPriority) +00041 { +00042 CSecureServer* self = new (ELeave) CSecureServer(aActiveObjectPriority); +00043 CleanupStack::PushL(self); +00044 self->ConstructL(); +00045 CleanupStack::Pop(); +00046 return self; +00047 } +00048 +00053 CObjectCon* CSecureServer::NewContainerL() +00054 { +00055 return iContainerIndex->CreateL(); +00056 } +00057 +00062 void CSecureServer::RemoveContainer(CObjectCon *aCon) +00063 { +00064 iContainerIndex->Remove(aCon); +00065 } +00066 +00075 CSecureServer::CSecureServer(CActive::TPriority aActiveObjectPriority) +00076 : CPolicyServer(aActiveObjectPriority, KSecureServerPolicy, ESharableSessions) +00077 { +00078 // KSecurityPolicy is the TPolicy object that defines the security policy of the server. +00079 } +00080 +00090 void CSecureServer::ConstructL() +00091 { +00092 iContainerIndex = CObjectConIx::NewL(); +00093 } +00094 +00098 CSecureServer::~CSecureServer() +00099 { +00100 delete iContainerIndex; +00101 } +00102 +00108 CSession2* CSecureServer::NewSessionL(const TVersion &aVersion,const RMessage2& /*aMessage*/) const +00109 { +00110 TVersion v(KSecureServMajorVersionNumber,KSecureServMinorVersionNumber,KSecureServBuildVersionNumber); +00111 if (!User::QueryVersionSupported(v,aVersion)) +00112 { +00113 User::Leave(KErrNotSupported); +00114 } +00115 return new (ELeave) CSecureServerSession; +00116 } +00117 +00136 CPolicyServer::TCustomResult CSecureServer:: CustomSecurityCheckL(const RMessage2 &aMsg, TInt &aAction, TSecurityInfo &aMissing) +00137 { +00138 TInt sid; +00139 RMessagePtr2 msg = aMsg; +00140 sid = msg.SecureId(); +00141 switch(aMsg.Function()) +00142 { +00143 case ESecureServerIncreaseBy: +00144 case ESecureServerDecreaseBy: +00145 { +00146 TInt val = aMsg.Int0(); +00147 if(val > 10) +00148 { +00149 if(sid > 0x70fffff5) +00150 { +00151 return EFail; +00152 } +00153 } +00154 } +00155 break; +00156 case ESecureServerReset: +00157 case ESecureServerDecrease: +00158 case ESecureServerIncrease: +00159 { +00160 } +00161 break; +00162 default: +00163 { +00164 aAction = EPanicClient; +00165 CheckFailedL(aMsg,aAction,aMissing); +00166 return EFail; +00167 } +00168 } +00169 return EPass; +00170 } +