diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureclient_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/secureclient_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,229 +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 // This client executable has all required capabilities to modify a file. -00015 // Demonstrates all functionalities provided by the client side interface of the server. -00016 // -00017 -00018 -00019 -00023 #include "secureclientandserver.h" -00024 #include "secureclient.h" -00025 -00026 LOCAL_D CConsoleBase* console; -00027 -00028 void DoExampleL() -00029 { -00030 console->Printf(KTxtTestingCountServer); -00031 -00032 // Create a session. -00033 RSecureSession countserv; -00034 User::LeaveIfError(countserv.Connect()); -00035 -00036 // Create a sub session. -00037 RSecureSubSession counterA; -00038 counterA.Open(countserv); -00039 -00040 // The user can choose to initialise the counter from the counter.dat file. -00041 console->Printf(KTxtInitCounterAWith); -00042 console->Printf(KTxtOption); -00043 TUint8 inpOption = console->Getch(); -00044 if(inpOption == '1') -00045 { -00046 // This call will fail if the client executable does not have required file read capability. -00047 counterA.SetCounterFromFileL(); -00048 console->Printf(KTxtInitFromFile,counterA.CounterValueL()); -00049 } -00050 else -00051 { -00052 // This is an invalid initialisation string. Hence, the counter will be initialised to zero. -00053 _LIT(KTxtValueString,"a2"); -00054 console->Printf(KTxtValueString); -00055 // Set counter from the KTxtValueString string -00056 TInt err = counterA.SetFromString(KTxtValueString); -00057 if (err == ENonNumericString) -00058 { -00059 // Print an error message as the initialisation string, KTxtValueString is invalid (non numeric format). -00060 console->Printf(KTxtInitCounterFailed); -00061 } -00062 else -00063 { -00064 // Initialisation from string succeeded. -00065 console->Printf(KTxtInitCounterSucceeded); -00066 } -00067 } -00068 RSecureSubSession counterB; -00069 -00070 // Create a sub session. -00071 counterB.Open(countserv); -00072 -00073 // The user can choose to initialise the counter from the counter.dat file. -00074 console->Printf(KTxtInitCounterBWith); -00075 console->Printf(KTxtOption); -00076 inpOption = console->Getch(); -00077 if(inpOption == '1') -00078 { -00079 // This call will fail if the client executable does not have required file read capability. -00080 counterB.SetCounterFromFileL(); -00081 console->Printf(KTxtInitFromFile,counterB.CounterValueL()); -00082 } -00083 else -00084 { -00085 // A valid numeric string. -00086 _LIT(KTxtLegalString,"100"); -00087 console->Printf(KTxtLegalString); -00088 // Set counter from the KTxtLegalString string. -00089 TInt err = counterB.SetFromString(KTxtLegalString); -00090 if (err == ENonNumericString) -00091 { -00092 // Print an error message as the initialisation string, KTxtValueString is invalid (non numeric format). -00093 console->Printf(KTxtInitCounterFailed); -00094 } -00095 else -00096 { -00097 // Initialisation from string succeeded. -00098 // Counter is initialised to 100. -00099 console->Printf(KTxtInitCounterSucceeded); -00100 } -00101 } -00102 -00103 // Wait for a key press. -00104 console->Printf(KMsgPressAnyKey); -00105 console->Getch(); -00106 console->ClearScreen(); -00107 -00108 // Print values of both counters. -00109 console->Printf(KTxtGetCounterAValue,counterA.CounterValueL()); -00110 console->Printf(KTxtGetCounterBValue,counterB.CounterValueL()); -00111 -00112 // Wait for a key press. -00113 console->Printf(KMsgPressAnyKey); -00114 console->Getch(); -00115 console->ClearScreen(); -00116 -00117 // Increase the counter value by 1 and print it. -00118 _LIT(KTxt1,"\nIncrease counterA by default value (i.e. 1)..\n"); -00119 console->Printf(KTxt1); -00120 counterA.Increase(); -00121 console->Printf(KTxtGetCounterAValue,counterA.CounterValueL()); -00122 -00123 // Increase the counter by a value greater than 1 and print it. -00124 _LIT(KTxt2,"\nIncrease counterA by 2..\n"); -00125 console->Printf(KTxt2); -00126 // IncreaseByL operation undergoes a custom security check. -00127 // If the value is greater than 10 and the SID is greater than 0x70fffff5, it fails. -00128 counterA.IncreaseByL(2); -00129 console->Printf(KTxtGetCounterAValue,counterA.CounterValueL()); -00130 -00131 // Increase the counter value by 1 and print it. -00132 _LIT(KTxt3,"\nIncrease counterB by default value (i.e. 1)..\n"); -00133 console->Printf(KTxt3); -00134 counterB.Increase(); -00135 console->Printf(KTxtGetCounterBValue,counterB.CounterValueL()); -00136 -00137 // Increase the counter by a value greater than 1 and print it. -00138 _LIT(KTxt4,"\nIncrease counterA by 17..\n"); -00139 console->Printf(KTxt4); -00140 // Fails if the SID is greater than 0x70fffff5 -00141 counterA.IncreaseByL(17); -00142 console->Printf(KTxtGetCounterAValue,counterA.CounterValueL()); -00143 -00144 // Wait for a key press. -00145 console->Printf(KMsgPressAnyKey); -00146 console->Getch(); -00147 console->ClearScreen(); -00148 -00149 // Increase the counter by a value greater than 1 and print it. -00150 _LIT(KTxt5,"\nIncrease counterB by 5..\n"); -00151 console->Printf(KTxt5); -00152 counterB.IncreaseByL(5); -00153 console->Printf(KTxtGetCounterBValue,counterB.CounterValueL()); -00154 -00155 // Decrease the counter value by 1 and print it. -00156 _LIT(KTxt6,"\nDecrease counterA..\n"); -00157 console->Printf(KTxt6); -00158 counterA.Decrease(); -00159 console->Printf(KTxtGetCounterAValue,counterA.CounterValueL()); -00160 -00161 // Decrease the counter by a value greater than 1 and print it. -00162 _LIT(KTxt7,"\nDecrease counterB by 3..\n"); -00163 console->Printf(KTxt7); -00164 console->Printf(KTxtGetCounterBValue,counterB.CounterValueL()); -00165 // DecreaseByL operation undergoes a custom security check. -00166 // If the value is greater than 10 and the SID is greater than 0x70fffff5, it fails. -00167 counterB.DecreaseByL(3); -00168 -00169 // Print the resource count of the server. -00170 _LIT(KTxt8,"\nResource count is.. %d \n"); -00171 console->Printf(KTxt8,countserv.ResourceCountL()); -00172 -00173 // The user can save the counter value to a file. -00174 console->Printf(KTxtSaveToFile); -00175 TUint8 sel = console->Getch(); -00176 if(sel == 'a') -00177 { -00178 // Save the value of the counter A. -00179 console->Printf(KTxtSelectCounter,sel); -00180 console->Printf(KTxtSaveCounter); -00181 // This call will fail if the client executable does not have required file write capability. -00182 counterA.SaveCounterL(); -00183 } -00184 else if(sel == 'b') -00185 { -00186 // Save the value of the counter B. -00187 console->Printf(KTxtSelectCounter,sel); -00188 console->Printf(KTxtSaveCounter); -00189 // This call will fail if the client executable does not have required file write capability. -00190 counterB.SaveCounterL(); -00191 } -00192 -00193 // Close both sub sessions and the main session. -00194 _LIT(KTxt9,"\nClosing counterA and then CounterB..\n"); -00195 console->Printf(KTxt9); -00196 counterA.Close(); -00197 counterB.Close(); -00198 countserv.Close(); -00199 } -00200 -00201 GLDEF_C TInt E32Main() -00202 { -00203 __UHEAP_MARK; -00204 CTrapCleanup* cleanup = CTrapCleanup::New(); -00205 -00206 TRAPD(createError, console = Console::NewL(KTextConsoleTitle, TSize(KConsFullScreen,KConsFullScreen))); -00207 if (createError) -00208 return createError; -00209 -00210 TRAPD(mainError, DoExampleL()); -00211 if (mainError) -00212 console->Printf(KTextFailed, mainError); -00213 console->Printf(KTextPressAnyKey); -00214 console->Getch(); -00215 -00216 delete console; -00217 delete cleanup; -00218 __UHEAP_MARKEND; -00219 return KErrNone; -00220 } -