diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_simple_client_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_simple_client_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ - -
-00001 // Copyright (c) 2000-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 // **NOTE**: The example does not demonstrate any security features - its purpose is simply -00015 // to demonstrate the basic principles of client/server interaction. -00016 // -00017 -00018 -00019 -00020 // needed for client interface -00021 #include "ClientServer.h" -00022 -00023 // needed for client (doExampleL) -00024 #include "SimpleClient.h" -00025 #include "CommonFramework.h" -00026 -00027 -00028 const TUint kDefaultMessageSlots=4; -00029 -00030 -00031 //********************************** -00032 //RCountServ -00033 //********************************** -00034 -00035 RCountServSession::RCountServSession() -00036 { -00037 } -00038 -00039 -00049 TInt RCountServSession::Connect() -00050 { -00051 TInt r=StartThread(iServerThread); -00052 if (r==KErrNone) -00053 r=CreateSession(KCountServerName,Version(),kDefaultMessageSlots); -00054 return(r); -00055 } -00056 -00057 -00061 TVersion RCountServSession::Version(void) const -00062 { -00063 return(TVersion(KCountServMajorVersionNumber,KCountServMinorVersionNumber,KCountServBuildVersionNumber)); -00064 } -00065 -00066 -00071 TInt RCountServSession::SetFromString(const TDesC& aString) -00072 { -00073 TIpcArgs args(&aString); -00074 return SendReceive(ECountServSetFromString, args); -00075 } -00076 -00077 -00081 void RCountServSession::Increase() -00082 { -00083 SendReceive(ECountServIncrease); -00084 } -00085 -00086 -00091 void RCountServSession::IncreaseBy(TInt anInt) -00092 { -00093 TIpcArgs args(anInt); -00094 SendReceive(ECountServIncreaseBy, args); -00095 } -00096 -00097 -00101 void RCountServSession::Decrease() -00102 { -00103 SendReceive(ECountServDecrease); -00104 } -00105 -00106 -00111 void RCountServSession::DecreaseBy(TInt anInt) -00112 { -00113 TIpcArgs args(anInt); -00114 SendReceive(ECountServDecreaseBy, args); -00115 } -00116 -00120 void RCountServSession::Reset() -00121 { -00122 SendReceive(ECountServReset); -00123 } -00124 -00125 -00131 TInt RCountServSession::CounterValue() -00132 { -00133 TInt res=0; -00134 TPckgBuf<TInt> pckg; -00135 -00136 // Note that TPckgBuf is of type TDes8 -00137 TIpcArgs args(&pckg); -00138 SendReceive(ECountServValue, args); -00139 -00140 // Extract the value returned from the server. -00141 res = pckg(); -00142 return res; -00143 } -00144 -00145 -00152 TInt RCountServSession::UnsupportedRequest() -00153 { -00154 return SendReceive(ECountServUnsupportedRequest); -00155 } -00156 -00160 void RCountServSession::BadRequest() -00161 { -00162 SendReceive(9999); -00163 } -00164 -00165 -00166 -00170 void RCountServSession::Close() -00171 { -00172 RSessionBase::Close(); -00173 iServerThread.Close(); -00174 } -00175 -00176 -00177 -00178 -00186 LOCAL_C void doExampleL() -00187 { -00188 _LIT(KTxtTestingCountServer,"Testing the count server \n\n"); -00189 _LIT(KTxtInitCounterWith,"\nInitialize the counter with : "); -00190 _LIT(KTxtInitCounterFailed,"\nSetting the counter from string failed: non-numeric character detected\n"); -00191 _LIT(KTxtGetCounterValue,"\nGetting the counter value back from the server: %d \n"); -00192 -00193 -00194 // Say that we are testing the count server -00195 console->Printf(KTxtTestingCountServer); -00196 -00197 // This is our handle to the server -00198 RCountServSession ss; -00199 -00200 // Connect to the count server, starting it up if we need to -00201 // (which in this example we do need to). -00202 // This creates a session with the server. -00203 User::LeaveIfError(ss.Connect()); -00204 -00205 // At this point the server appears ready to accept requests. -00206 console->Printf(KTxtInitCounterWith); -00207 -00208 // Initialise the counter by passing an illegal string - this should -00209 // fail - but we will check anyway before reporting a failure. -00210 _LIT(KTxtIllegalString,"22h4"); -00211 console->Printf(KTxtIllegalString); -00212 TInt ret = ss.SetFromString(KTxtIllegalString); -00213 if (ret==ENonNumericString) -00214 { -00215 console->Printf(KTxtInitCounterFailed); -00216 } -00217 -00218 // Now try and initialise the counter using a legal string. -00219 console->Printf(KTxtInitCounterWith); -00220 _LIT(KTxtLegalString,"224"); -00221 console->Printf(KTxtLegalString); -00222 ret = ss.SetFromString(KTxtLegalString); -00223 if (ret==ENonNumericString) -00224 { -00225 console->Printf(KTxtInitCounterFailed); -00226 } -00227 -00228 // Now get the value back from the server, just to see what it believes -00229 // it has. We are expecting the value 224 (of course!!!). -00230 ret = ss.CounterValue(); -00231 console->Printf(KTxtGetCounterValue, ret); -00232 -00233 // Now increase the counter value by the default value. -00234 _LIT(KTxt1,"\nIncrease counter (default 1).."); -00235 console->Printf(KTxt1); -00236 ss.Increase(); -00237 ret = ss.CounterValue(); -00238 console->Printf(KTxtGetCounterValue, ret); -00239 -00240 // Now increase the counter value by 2. -00241 _LIT(KTxt2,"\nIncrease counter by 2.."); -00242 console->Printf(KTxt2); -00243 ss.IncreaseBy(2); -00244 ret = ss.CounterValue(); -00245 console->Printf(KTxtGetCounterValue, ret); -00246 -00247 // Now decrease the counter value by the default value. -00248 _LIT(KTxt3,"\nDecrease counter(default 1).."); -00249 console->Printf(KTxt3); -00250 ss.Decrease(); -00251 ret = ss.CounterValue(); -00252 console->Printf(KTxtGetCounterValue, ret); -00253 -00254 // Now increase the counter value by 7. -00255 _LIT(KTxt4,"\nIncrease counter by 7.."); -00256 console->Printf(KTxt4); -00257 ss.IncreaseBy(7); -00258 ret = ss.CounterValue(); -00259 console->Printf(KTxtGetCounterValue, ret); -00260 -00261 // Now increase the counter value again by the default value. -00262 _LIT(KTxt5,"\nIncrease counter(default 1).."); -00263 console->Printf(KTxt5); -00264 ss.Increase(); -00265 ret = ss.CounterValue(); -00266 console->Printf(KTxtGetCounterValue, ret); -00267 -00268 // Now decrease the counter value by 3. -00269 _LIT(KTxt6,"\nDecrease counter by 3.."); -00270 console->Printf(KTxt6); -00271 ss.DecreaseBy(3); -00272 ret = ss.CounterValue(); -00273 console->Printf(KTxtGetCounterValue, ret); -00274 -00275 // Reset counter value -00276 _LIT(KTxt7,"\nReseting counter value to 0.."); -00277 console->Printf(KTxt7); -00278 ss.Reset(); -00279 ret = ss.CounterValue(); -00280 console->Printf(KTxtGetCounterValue, ret); -00281 -00282 -00283 // Call API function which is not implemented in the server -00284 _LIT(KTxt8,"\nAbout to call the unsupported function Stop().."); -00285 console->Printf(KTxt8); -00286 ret = ss.UnsupportedRequest(); -00287 _LIT(KTxt9,"\nSorry, UnsupportedRequest() is not supported\n"); -00288 if (ret==KErrNotSupported) -00289 { -00290 console->Printf(KTxt9); -00291 } -00292 -00293 -00294 // This request will panic this client so do not remove the -00295 // following comment unless you want to try it. -00296 // ss.BadRequest(); -00297 -00298 -00299 // Close the sesssion with the count server. -00300 ss.Close(); -00301 } -