diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_wait_loop_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_wait_loop_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ - - -TB10.1 Example Applications: examples/Base/IPC/Async/WaitLoop/WaitLoop.cpp Source File - - - - -

examples/Base/IPC/Async/WaitLoop/WaitLoop.cpp

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 // Show asynchronous programming (without active objects)
-00015 // Example shows how a wait loop can be used to identify how a
-00016 // request completed and service its completion
-00017 //
-00018         
-00019 
-00020 #include "CommonFramework.h"
-00021 #include <e32math.h>
-00022 
-00023 //
-00024 // utility functions
-00025 //
-00026 
-00027 LOCAL_D TInt64 smallRandSeed;
-00028 
-00029 LOCAL_C TInt smallRand()
-00030         { 
-00031           // produce small random numbers in range 0..9
-00032         TInt bigResult=Math::Rand(smallRandSeed);// result uses full 32-bit range
-00033         return bigResult % 10;                   // return result mod 10
-00034         }
-00035 
-00036 LOCAL_C void sleep(TInt aTenths)
-00037         { 
-00038           // sleep for an interval measured in tenths of a second
-00039         User::After(aTenths*100000); // just let the User function do it for us
-00040         }
-00041 
-00042 
-00043 // Do the example
-00044 LOCAL_C void doExampleL()
-00045     {
-00046           // create and initialize heartbeat timer
-00047         RTimer heartbeat;               // heartbeat timer
-00048         TRequestStatus heartbeatStatus; // request status associated with it
-00049         heartbeat.CreateLocal();        // always created for this thread
-00050 
-00051           // issue first heartbeat request
-00052         heartbeat.After(heartbeatStatus,1000000); // request completion
-00053                                                   // after 1 second
-00054         TInt heartbeatTick=0;                     // counts heartbeat ticks
-00055 
-00056           // wait loop
-00057         for (;;)
-00058                 {
-00059                   // wait for any request
-00060                 User::WaitForAnyRequest();
-00061                   // find out which request completed, and handle it
-00062                 if (heartbeatStatus!=KRequestPending)
-00063                         {
-00064                           // heartbeat completed so service request
-00065                         _LIT(KMsgServicing,"Servicing heartbeat tick %d ...\n");
-00066                         console->Printf(KMsgServicing,heartbeatTick);
-00067                           // take some time over it
-00068                         sleep(smallRand());
-00069                         _LIT(KMsgServiced,"... heartbeat tick %d serviced\n");
-00070                         console->Printf(KMsgServiced,heartbeatTick);
-00071                           // test whether processing should finish
-00072                         if (heartbeatTick >= 10)
-00073                                 {
-00074                                   // 10 heart-beats: processing finished
-00075                                 _LIT(KMsgFinishing,"Finishing\n");
-00076                                 console->Printf(KMsgFinishing);
-00077                                   // finish wait loop
-00078                                 break;
-00079                                 }
-00080                           // re-issue request
-00081                         heartbeatTick++;                          // increment tick
-00082                                                                   // counter
-00083                         heartbeat.After(heartbeatStatus,1000000); // request completion
-00084                                                                   // after another second
-00085                         }
-00086                 else
-00087                         {
-00088                           // stray signal
-00089                         _LIT(KMsgStraySignal,"Stray signal\n");
-00090                         User::Panic(KMsgStraySignal, 1); // panic!
-00091                         }
-00092                 }
-00093 
-00094         // close timer
-00095         heartbeat.Close(); // close timer
-00096         }
-

Generated on Thu Jan 21 10:32:56 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -