examples/S60CppExamples/ClientServerAsync/doc/class_c_time_server.html

00001 "-//W3C//DTD HTML 4.0 Transitional//EN">
00002 
00003 
00004 
00005 "Content-Type" content="text/html;charset=iso-8859-1">
00006 <a class="code" href="class_c_time_server.html">CTimeServer</a> Class Reference
00007 "style.css" rel="stylesheet" type="text/css">
00008 
00009 
00010 "0" width="100%" height="8" bgcolor="#eeeeee">
00011 
"100%" height="1">"2" color="#000000" face="Arial, Helvetica, sans-serif"> 00012 S60 5th Edition SDK
Example Applications Guide
00013 00014
class="tabs"> 00015
00020 00026

CTimeServer Class Reference

#include <class="el" href="timeserver_8h-source.html">timeserver.h> 00027

00028

Inheritance diagram for CTimeServer: 00029

"class_c_time_server.png" usemap="#CTimeServer_map" border="0" alt="">
00030 "CTimeServer_map"> 00031 00032 "class_c_time_server-members.html">List of all members.
"_details">

Detailed Description

00033 CTimeServer. An instance of class CTimeServer is the main server class for the ClientServerAsync example application. 00034

00035 00036

00037 Definition at line "el" href="timeserver_8h-source.html#l00030">30 of file class="el" href="timeserver_8h-source.html">timeserver.h.

"0" cellpadding="0" cellspacing="0"> 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083
"2">

Public Member Functions

class="memItemLeft" nowrap align="right" valign="top">virtual class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#ab523c20e96ddd5e1413d525bad59fdd">~CTimeServer ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#a3afdfcfbf3d8aa45b7f96b5a1c7119e">IncrementSessions ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#982e65810ad50ce20759fd26fad488dc">DecrementSessions ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#a8205372b5d379fa4b803e98b0726473">WaitForTickL ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#8bc39d8613772fe04fa5d6a845ede8cd">Beat ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#a6043d9cad7048bb64b0d0d125ddc875">Synchronize ()
"2">

Static Public Member Functions

class="memItemLeft" nowrap align="right" valign="top">static CTimeServerclass="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#990716240ccf3341f7fdbf289ec927ad">NewL ()
class="memItemLeft" nowrap align="right" valign="top">static CTimeServerclass="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#94389c6729b439332fc74a54ac683740">NewLC ()
class="memItemLeft" nowrap align="right" valign="top">static TInt class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#61b4b595801bf9fedbb0df14ed44332c">ThreadFunction (TAny *aStarted)
"2">

Protected Member Functions

class="memItemLeft" nowrap align="right" valign="top">TInt class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#0f788de08f5d216c674e6eaeaea1c67a">RunError (TInt aError)
"2">

Private Member Functions

class="memItemLeft" nowrap align="right" valign="top"class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#95423dd47aaf3240e1e4b42baa280c39">CTimeServer (TInt aPriority)
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#9ce34ba0b947863222da3c63d0481044">ConstructL ()
class="memItemLeft" nowrap align="right" valign="top">void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#993249bd000d59f1d0437eea0ab25fc3">SendTimeToSessions ()
class="memItemLeft" nowrap align="right" valign="top">CSession2 * class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#e8cc7a175c8a6ec0a2b0ee8bf27badb9">NewSessionL (const TVersion &aVersion, const RMessage2 &aMessage) const
"2">

Static Private Member Functions

class="memItemLeft" nowrap align="right" valign="top">static void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#5486029c4d68e3db4b0cbbbd2c4c711e">PanicClient (const RMessage2 &aMessage, TTimeServPanic aReason)
class="memItemLeft" nowrap align="right" valign="top">static void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#57317bfd7bbf407064d8f0b845a16d46">PanicServer (TTimeServPanic aPanic)
class="memItemLeft" nowrap align="right" valign="top">static void class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#be5e4a4628587739b7c76951f9577e8e">ThreadFunctionL ()
"2">

Private Attributes

class="memItemLeft" nowrap align="right" valign="top">TInt class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#40ac9219e4400c125719d767d564fc3e">iSessionCount
class="memItemLeft" nowrap align="right" valign="top">CHeartbeat * class="memItemRight" valign="bottom">class="el" href="class_c_time_server.html#bd20aae428bf045cb28f7958102a14e1">iHeartbeat
00084

Constructor & Destructor Documentation

00085 class="anchor" name="ab523c20e96ddd5e1413d525bad59fdd">

00086

class="mdTable" cellpadding="2" cellspacing="0"> 00087 00088 00099 00100
class="mdRow"> 00089 "0" cellspacing="0" border="0"> 00090 00091 00092 00093 00094 00095 00096 00097
class="md" nowrap valign="top">CTimeServer::~CTimeServer class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [virtual]
00098
00101 "5" cellpadding="0" border="0"> 00102 00103 00106 00120 00121
00104   00105 00107 00108

00109 ~CTimeServer. Destructor. 00110

00111 Definition at line class="el" href="timeserver_8cpp-source.html#l00078">78 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00112

00113 References class="el" href="timeserver_8h-source.html#l00176">iHeartbeat.

00118

00119

00122 class="anchor" name="95423dd47aaf3240e1e4b42baa280c39">

00123

class="mdTable" cellpadding="2" cellspacing="0"> 00124 00125 00137 00138
class="mdRow"> 00126 "0" cellspacing="0" border="0"> 00127 00128 00129 00130 00131 00132 00133 00134 00135
class="md" nowrap valign="top">CTimeServer::CTimeServer class="md" valign="top">(  class="md" nowrap valign="top">TInt  class="mdname1" valign="top" nowrap> aPriority class="md" valign="top"> )  class="md" nowrap> [private]
00136
00139 "5" cellpadding="0" border="0"> 00140 00141 00144 00163 00164
00142   00143 00145 00146

00147 CTimeServer. C++ default constructor.

Parameters:
00148 "0" cellspacing="2" cellpadding="0"> 00149 00150
"top">"top">aPriority priority for this thread.
00151
00152 00153

00154 Definition at line class="el" href="timeserver_8cpp-source.html#l00067">67 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00155

00156 Referenced by class="el" href="timeserver_8cpp-source.html#l00044">NewLC().

class="fragment">
class="fragment">"l00068">00068 : CServer2( aPriority )
00157 "l00069">00069     {
00158 "l00070">00070     class="comment">// Implementation not required
00159 "l00071">00071     }
00160 
00161

00162

00165

Member Function Documentation

00166 class="anchor" name="990716240ccf3341f7fdbf289ec927ad">

00167

class="mdTable" cellpadding="2" cellspacing="0"> 00168 00169 00180 00181
class="mdRow"> 00170 "0" cellspacing="0" border="0"> 00171 00172 00173 00174 00175 00176 00177 00178
class="md" nowrap valign="top">class="el" href="class_c_time_server.html">CTimeServer * CTimeServer::NewL class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [static]
00179
00182 "5" cellpadding="0" border="0"> 00183 00184 00187 00203 00204
00185   00186 00188 00189

00190 NewL. Two-phased constructor.

Returns:
Pointer to created CTimeServer object.
00191 00192

00193 Definition at line class="el" href="timeserver_8cpp-source.html#l00032">32 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00194

00195 References class="el" href="timeserver_8cpp-source.html#l00044">NewLC().

class="fragment">
class="fragment">"l00033">00033     {
00196 "l00034">00034     class="code" href="class_c_time_server.html">CTimeServer* timeServer = class="code" href="class_c_time_server.html#94389c6729b439332fc74a54ac683740">CTimeServer::NewLC();
00197 "l00035">00035     CleanupStack::Pop( timeServer );
00198 "l00036">00036     class="keywordflow">return timeServer;
00199 "l00037">00037     }
00200 
00201

00202

00205 class="anchor" name="94389c6729b439332fc74a54ac683740">

00206

class="mdTable" cellpadding="2" cellspacing="0"> 00207 00208 00219 00220
class="mdRow"> 00209 "0" cellspacing="0" border="0"> 00210 00211 00212 00213 00214 00215 00216 00217
class="md" nowrap valign="top">class="el" href="class_c_time_server.html">CTimeServer * CTimeServer::NewLC class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [static]
00218
00221 "5" cellpadding="0" border="0"> 00222 00223 00226 00245 00246
00224   00225 00227 00228

00229 NewLC. Two-phased constructor.

Returns:
Pointer to created CTimeServer object.
00230 00231

00232 Definition at line class="el" href="timeserver_8cpp-source.html#l00044">44 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00233

00234 References class="el" href="timeserver_8cpp-source.html#l00057">ConstructL(), and class="el" href="timeserver_8cpp-source.html#l00067">CTimeServer(). 00235

00236 Referenced by class="el" href="timeserver_8cpp-source.html#l00032">NewL(), and class="el" href="timeserver_8cpp-source.html#l00232">ThreadFunctionL().

class="fragment">
class="fragment">"l00045">00045     {
00237 "l00046">00046     class="code" href="class_c_time_server.html">CTimeServer* timeServer = class="keyword">new ( ELeave ) class="code" href="class_c_time_server.html#95423dd47aaf3240e1e4b42baa280c39">CTimeServer( EPriorityNormal );
00238 "l00047">00047     CleanupStack::PushL( timeServer );
00239 "l00048">00048     timeServer->class="code" href="class_c_time_server.html#9ce34ba0b947863222da3c63d0481044">ConstructL();
00240 "l00049">00049     class="keywordflow">return timeServer;
00241 "l00050">00050     }
00242 
00243

00244

00247 class="anchor" name="61b4b595801bf9fedbb0df14ed44332c">

00248

class="mdTable" cellpadding="2" cellspacing="0"> 00249 00250 00262 00263
class="mdRow"> 00251 "0" cellspacing="0" border="0"> 00252 00253 00254 00255 00256 00257 00258 00259 00260
class="md" nowrap valign="top">TInt CTimeServer::ThreadFunction class="md" valign="top">(  class="md" nowrap valign="top">TAny *  class="mdname1" valign="top" nowrap> aStarted class="md" valign="top"> )  class="md" nowrap> [static]
00261
00264 "5" cellpadding="0" border="0"> 00265 00266 00269 00303 00304
00267   00268 00270 00271

00272 ThreadFunction. Main function for the server thread.

Parameters:
00273 "0" cellspacing="2" cellpadding="0"> 00274 00275
"top">"top">aStarted A semaphore to be flagged when server has been started.
00276
00277
Returns:
Error code.
00278 00279

00280 Definition at line class="el" href="timeserver_8cpp-source.html#l00264">264 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00281

00282 References class="el" href="timeserver_8cpp-source.html#l00171">PanicServer(), and class="el" href="timeserver_8cpp-source.html#l00232">ThreadFunctionL().

class="fragment">
class="fragment">"l00265">00265     {
00283 "l00266">00266     CTrapCleanup* cleanupStack = CTrapCleanup::New();
00284 "l00267">00267     class="keywordflow">if ( !( cleanupStack ) )
00285 "l00268">00268         {
00286 "l00269">00269         class="code" href="class_c_time_server.html#57317bfd7bbf407064d8f0b845a16d46">PanicServer( ECreateTrapCleanup );
00287 "l00270">00270         }
00288 "l00271">00271 
00289 "l00272">00272     TRAPD( err, class="code" href="class_c_time_server.html#be5e4a4628587739b7c76951f9577e8e">ThreadFunctionL() );
00290 "l00273">00273     class="keywordflow">if ( err != KErrNone )
00291 "l00274">00274         {
00292 "l00275">00275         class="code" href="class_c_time_server.html#57317bfd7bbf407064d8f0b845a16d46">PanicServer( ESrvCreateServer );
00293 "l00276">00276         }
00294 "l00277">00277 
00295 "l00278">00278     class="keyword">delete cleanupStack;
00296 "l00279">00279     cleanupStack = NULL;
00297 "l00280">00280 
00298 "l00281">00281     class="keywordflow">return KErrNone;
00299 "l00282">00282     }
00300 
00301

00302

00305 class="anchor" name="a3afdfcfbf3d8aa45b7f96b5a1c7119e">

00306

class="mdTable" cellpadding="2" cellspacing="0"> 00307 00308 00319 00320
class="mdRow"> 00309 "0" cellspacing="0" border="0"> 00310 00311 00312 00313 00314 00315 00316 00317
class="md" nowrap valign="top">void CTimeServer::IncrementSessions class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap>
00318
00321 "5" cellpadding="0" border="0"> 00322 00323 00326 00341 00342
00324   00325 00327 00328

00329 IncrementSessions. Increments the count of the active sessions for this server. 00330

00331 Definition at line class="el" href="timeserver_8cpp-source.html#l00111">111 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00332

00333 References class="el" href="timeserver_8h-source.html#l00170">iSessionCount. 00334

00335 Referenced by class="el" href="timesession_8cpp-source.html#l00056">CTimeServerSession::ConstructL().

00339

00340

00343 class="anchor" name="982e65810ad50ce20759fd26fad488dc">

00344

class="mdTable" cellpadding="2" cellspacing="0"> 00345 00346 00357 00358
class="mdRow"> 00347 "0" cellspacing="0" border="0"> 00348 00349 00350 00351 00352 00353 00354 00355
class="md" nowrap valign="top">void CTimeServer::DecrementSessions class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap>
00356
00359 "5" cellpadding="0" border="0"> 00360 00361 00364 00383 00384
00362   00363 00365 00366

00367 DecrementSessions. Decrements the count of the active sessions for this server. If no more sessions are in use the server terminates. 00368

00369 Definition at line class="el" href="timeserver_8cpp-source.html#l00121">121 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00370

00371 References class="el" href="timeserver_8h-source.html#l00170">iSessionCount. 00372

00373 Referenced by class="el" href="timesession_8cpp-source.html#l00077">CTimeServerSession::~CTimeServerSession().

class="fragment">
class="fragment">"l00122">00122     {
00374 "l00123">00123     class="code" href="class_c_time_server.html#40ac9219e4400c125719d767d564fc3e">iSessionCount--;
00375 "l00124">00124     class="keywordflow">if ( class="code" href="class_c_time_server.html#40ac9219e4400c125719d767d564fc3e">iSessionCount <= 0 )
00376 "l00125">00125         {
00377 "l00126">00126         CActiveScheduler::Stop();
00378 "l00127">00127         }
00379 "l00128">00128     }
00380 
00381

00382

00385 class="anchor" name="a8205372b5d379fa4b803e98b0726473">

00386

class="mdTable" cellpadding="2" cellspacing="0"> 00387 00388 00399 00400
class="mdRow"> 00389 "0" cellspacing="0" border="0"> 00390 00391 00392 00393 00394 00395 00396 00397
class="md" nowrap valign="top">void CTimeServer::WaitForTickL class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap>
00398
00401 "5" cellpadding="0" border="0"> 00402 00403 00406 00425 00426
00404   00405 00407 00408

00409 WaitForTickL. Activates the heartbeat. 00410

00411 Definition at line class="el" href="timeserver_8cpp-source.html#l00181">181 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00412

00413 References class="el" href="timeserver_8h-source.html#l00176">iHeartbeat. 00414

00415 Referenced by class="el" href="timesession_8cpp-source.html#l00114">CTimeServerSession::RequestTimeL().

00423

00424

00427 class="anchor" name="8bc39d8613772fe04fa5d6a845ede8cd">

00428

class="mdTable" cellpadding="2" cellspacing="0"> 00429 00430 00441 00442
class="mdRow"> 00431 "0" cellspacing="0" border="0"> 00432 00433 00434 00435 00436 00437 00438 00439
class="md" nowrap valign="top">void CTimeServer::Beat class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap>
00440
00443 "5" cellpadding="0" border="0"> 00444 00445 00448 00461 00462
00446   00447 00449 00450

00451 From MBeating, Beat. A clock tick has occured. 00452

00453 Definition at line class="el" href="timeserver_8cpp-source.html#l00195">195 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00454

00455 References class="el" href="timeserver_8cpp-source.html#l00215">SendTimeToSessions().

00459

00460

00463 class="anchor" name="a6043d9cad7048bb64b0d0d125ddc875">

00464

class="mdTable" cellpadding="2" cellspacing="0"> 00465 00466 00477 00478
class="mdRow"> 00467 "0" cellspacing="0" border="0"> 00468 00469 00470 00471 00472 00473 00474 00475
class="md" nowrap valign="top">void CTimeServer::Synchronize class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap>
00476
00479 "5" cellpadding="0" border="0"> 00480 00481 00484 00497 00498
00482   00483 00485 00486

00487 From MBeating, Synchronize. Several clock ticks have occured. 00488

00489 Definition at line class="el" href="timeserver_8cpp-source.html#l00205">205 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00490

00491 References class="el" href="timeserver_8cpp-source.html#l00215">SendTimeToSessions().

00495

00496

00499 class="anchor" name="0f788de08f5d216c674e6eaeaea1c67a">

00500

class="mdTable" cellpadding="2" cellspacing="0"> 00501 00502 00514 00515
class="mdRow"> 00503 "0" cellspacing="0" border="0"> 00504 00505 00506 00507 00508 00509 00510 00511 00512
class="md" nowrap valign="top">TInt CTimeServer::RunError class="md" valign="top">(  class="md" nowrap valign="top">TInt  class="mdname1" valign="top" nowrap> aError class="md" valign="top"> )  class="md" nowrap> [protected]
00513
00516 "5" cellpadding="0" border="0"> 00517 00518 00521 00556 00557
00519   00520 00522 00523

00524 From CActive, RunError. Processes any errors.

Parameters:
00525 "0" cellspacing="2" cellpadding="0"> 00526 00527
"top">"top">aError The leave code reported.
00528
00529
Returns:
return KErrNone if leave is handled.
00530 00531

00532 Definition at line class="el" href="timeserver_8cpp-source.html#l00135">135 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00533

00534 References class="el" href="timeserver_8cpp-source.html#l00161">PanicClient().

class="fragment">
class="fragment">"l00136">00136     {
00535 "l00137">00137     class="keywordflow">if ( aError == KErrBadDescriptor )
00536 "l00138">00138         {
00537 "l00139">00139         class="comment">// A bad descriptor error implies a badly programmed client,
00538 "l00140">00140         class="comment">// so panic it; otherwise report the error to the client
00539 "l00141">00141         class="code" href="class_c_time_server.html#5486029c4d68e3db4b0cbbbd2c4c711e">PanicClient( Message(), EBadDescriptor );
00540 "l00142">00142         }
00541 "l00143">00143     class="keywordflow">else
00542 "l00144">00144         {
00543 "l00145">00145         Message().Complete( aError );
00544 "l00146">00146         }
00545 "l00147">00147 
00546 "l00148">00148     class="comment">// The leave will result in an early return from CServer::RunL(), skipping
00547 "l00149">00149     class="comment">// the call to request another message. So do that now in order to keep the
00548 "l00150">00150     class="comment">// server running.
00549 "l00151">00151     ReStart();
00550 "l00152">00152 
00551 "l00153">00153     class="keywordflow">return KErrNone;    class="comment">// Handled the error fully
00552 "l00154">00154     }
00553 
00554

00555

00558 class="anchor" name="9ce34ba0b947863222da3c63d0481044">

00559

class="mdTable" cellpadding="2" cellspacing="0"> 00560 00561 00572 00573
class="mdRow"> 00562 "0" cellspacing="0" border="0"> 00563 00564 00565 00566 00567 00568 00569 00570
class="md" nowrap valign="top">void CTimeServer::ConstructL class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [private]
00571
00574 "5" cellpadding="0" border="0"> 00575 00576 00579 00592 00593
00577   00578 00580 00581

00582 ConstructL. 2nd phase constructor. 00583

00584 Definition at line class="el" href="timeserver_8cpp-source.html#l00057">57 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00585

00586 Referenced by class="el" href="timeserver_8cpp-source.html#l00044">NewLC().

class="fragment">
class="fragment">"l00058">00058     {
00587 "l00059">00059     StartL( KTimeServerName );
00588 "l00060">00060     }
00589 
00590

00591

00594 class="anchor" name="5486029c4d68e3db4b0cbbbd2c4c711e">

00595

class="mdTable" cellpadding="2" cellspacing="0"> 00596 00597 00618 00619
class="mdRow"> 00598 "0" cellspacing="0" border="0"> 00599 00600 00601 00602 00603 00604 00605 00606 00607 00608 00609 00610 00611 00612 00613 00614 00615 00616
class="md" nowrap valign="top">void CTimeServer::PanicClient class="md" valign="top">(  class="md" nowrap valign="top">const RMessage2 &  class="mdname" nowrap> aMessage,
class="md" nowrap align="right"> class="md"> class="md" nowrap>TTimeServPanic  class="mdname" nowrap> aReason
class="md"> class="md">)  class="md" colspan="2"> [static, private]
00617
00620 "5" cellpadding="0" border="0"> 00621 00622 00625 00644 00645
00623   00624 00626 00627

00628 PanicClient. Panics the client.

Parameters:
00629 "0" cellspacing="2" cellpadding="0"> 00630 00631 00632
"top">"top">aMessage The message channel to the client.
"top">"top">aReason The reason code for the panic.
00633
00634 00635

00636 Definition at line class="el" href="timeserver_8cpp-source.html#l00161">161 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00637

00638 Referenced by class="el" href="timeserver_8cpp-source.html#l00135">RunError().

class="fragment">
class="fragment">"l00162">00162     {
00639 "l00163">00163     aMessage.Panic( KCSAsyncServer, aPanic );
00640 "l00164">00164     }
00641 
00642

00643

00646 class="anchor" name="57317bfd7bbf407064d8f0b845a16d46">

00647

class="mdTable" cellpadding="2" cellspacing="0"> 00648 00649 00661 00662
class="mdRow"> 00650 "0" cellspacing="0" border="0"> 00651 00652 00653 00654 00655 00656 00657 00658 00659
class="md" nowrap valign="top">void CTimeServer::PanicServer class="md" valign="top">(  class="md" nowrap valign="top">TTimeServPanic  class="mdname1" valign="top" nowrap> aPanic class="md" valign="top"> )  class="md" nowrap> [static, private]
00660
00663 "5" cellpadding="0" border="0"> 00664 00665 00668 00686 00687
00666   00667 00669 00670

00671 PanicServer. Panics the server.

Parameters:
00672 "0" cellspacing="2" cellpadding="0"> 00673 00674
"top">"top">aPanic The panic code.
00675
00676 00677

00678 Definition at line class="el" href="timeserver_8cpp-source.html#l00171">171 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00679

00680 Referenced by class="el" href="timeserver_8cpp-source.html#l00264">ThreadFunction().

class="fragment">
class="fragment">"l00172">00172     {
00681 "l00173">00173     User::Panic( KCSAsyncServer, aPanic );
00682 "l00174">00174     }
00683 
00684

00685

00688 class="anchor" name="be5e4a4628587739b7c76951f9577e8e">

00689

class="mdTable" cellpadding="2" cellspacing="0"> 00690 00691 00702 00703
class="mdRow"> 00692 "0" cellspacing="0" border="0"> 00693 00694 00695 00696 00697 00698 00699 00700
class="md" nowrap valign="top">void CTimeServer::ThreadFunctionL class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [static, private]
00701
00704 "5" cellpadding="0" border="0"> 00705 00706 00709 00746 00747
00707   00708 00710 00711

00712 ThreadFunctionL. Second stage startup for the server thread. 00713

00714 Definition at line class="el" href="timeserver_8cpp-source.html#l00232">232 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00715

00716 References class="el" href="timeserver_8cpp-source.html#l00044">NewLC(). 00717

00718 Referenced by class="el" href="timeserver_8cpp-source.html#l00264">ThreadFunction().

class="fragment">
class="fragment">"l00233">00233     {
00719 "l00234">00234     class="comment">// Construct active scheduler
00720 "l00235">00235     CActiveScheduler* activeScheduler = class="keyword">new ( ELeave ) CActiveScheduler;
00721 "l00236">00236     CleanupStack::PushL( activeScheduler );
00722 "l00237">00237 
00723 "l00238">00238     class="comment">// Install active scheduler
00724 "l00239">00239     class="comment">// We don't need to check whether an active scheduler is already installed
00725 "l00240">00240     class="comment">// as this is a new thread, so there won't be one
00726 "l00241">00241     CActiveScheduler::Install( activeScheduler );
00727 "l00242">00242 
00728 "l00243">00243     class="comment">// Construct our server
00729 "l00244">00244     class="code" href="class_c_time_server.html#94389c6729b439332fc74a54ac683740">CTimeServer::NewLC();    class="comment">// Anonymous
00730 "l00245">00245 
00731 "l00246">00246     RSemaphore semaphore;
00732 "l00247">00247     User::LeaveIfError( semaphore.OpenGlobal( KTimeServerSemaphoreName ) );
00733 "l00248">00248 
00734 "l00249">00249     class="comment">// Semaphore opened ok
00735 "l00250">00250     semaphore.Signal();
00736 "l00251">00251     semaphore.Close();
00737 "l00252">00252 
00738 "l00253">00253     class="comment">// Start handling requests
00739 "l00254">00254     CActiveScheduler::Start();
00740 "l00255">00255 
00741 "l00256">00256     CleanupStack::PopAndDestroy( 2, activeScheduler ); class="comment">//Anonymous CTimeServer
00742 "l00257">00257     }
00743 
00744

00745

00748 class="anchor" name="993249bd000d59f1d0437eea0ab25fc3">

00749

class="mdTable" cellpadding="2" cellspacing="0"> 00750 00751 00762 00763
class="mdRow"> 00752 "0" cellspacing="0" border="0"> 00753 00754 00755 00756 00757 00758 00759 00760
class="md" nowrap valign="top">void CTimeServer::SendTimeToSessions class="md" valign="top">(  class="mdname1" valign="top" nowrap> class="md" valign="top"> )  class="md" nowrap> [private]
00761
00764 "5" cellpadding="0" border="0"> 00765 00766 00769 00791 00792
00767   00768 00770 00771

00772 SendTimeToSessions. Informs all the clients that a time change has occured. 00773

00774 Definition at line class="el" href="timeserver_8cpp-source.html#l00215">215 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00775

00776 References class="el" href="timesession_8cpp-source.html#l00138">CTimeServerSession::SendTimeToClient(). 00777

00778 Referenced by class="el" href="timeserver_8cpp-source.html#l00195">Beat(), and class="el" href="timeserver_8cpp-source.html#l00205">Synchronize().

class="fragment">
class="fragment">"l00216">00216     {
00779 "l00217">00217     iSessionIter.SetToFirst();
00780 "l00218">00218     class="code" href="class_c_time_server_session.html">CTimeServerSession* session;
00781 "l00219">00219     session = reinterpret_cast<CTimeServerSession*>( iSessionIter++ );
00782 "l00220">00220     class="keywordflow">while ( session )
00783 "l00221">00221         {
00784 "l00222">00222         session->class="code" href="class_c_time_server_session.html#ecff8e289d914777ae0c503db937cf33">SendTimeToClient();
00785 "l00223">00223         session = reinterpret_cast<CTimeServerSession*>( iSessionIter++ );
00786 "l00224">00224         }
00787 "l00225">00225     }
00788 
00789

00790

00793 class="anchor" name="e8cc7a175c8a6ec0a2b0ee8bf27badb9">

00794

class="mdTable" cellpadding="2" cellspacing="0"> 00795 00796 00817 00818
class="mdRow"> 00797 "0" cellspacing="0" border="0"> 00798 00799 00800 00801 00802 00803 00804 00805 00806 00807 00808 00809 00810 00811 00812 00813 00814 00815
class="md" nowrap valign="top">CSession2 * CTimeServer::NewSessionL class="md" valign="top">(  class="md" nowrap valign="top">const TVersion &  class="mdname" nowrap> aVersion,
class="md" nowrap align="right"> class="md"> class="md" nowrap>const RMessage2 &  class="mdname" nowrap> aMessage
class="md"> class="md">)  class="md" colspan="2"> const [private]
00816
00819 "5" cellpadding="0" border="0"> 00820 00821 00824 00855 00856
00822   00823 00825 00826

00827 From CServer, NewSessionL. Creates a time server session.

Parameters:
00828 "0" cellspacing="2" cellpadding="0"> 00829 00830 00831
"top">"top">aVersion The client version.
"top">"top">aMessage Message from client.
00832
00833
Returns:
Pointer to new session.
00834 00835

00836 Definition at line class="el" href="timeserver_8cpp-source.html#l00089">89 of file class="el" href="timeserver_8cpp-source.html">timeserver.cpp. 00837

00838 References class="el" href="timesession_8cpp-source.html#l00031">CTimeServerSession::NewL().

class="fragment">
class="fragment">"l00091">00091     {
00839 "l00092">00092     class="comment">// Check we are the right version
00840 "l00093">00093     class="keywordflow">if ( !User::QueryVersionSupported( TVersion( KTimeServMajorVersionNumber,
00841 "l00094">00094                                                  KTimeServMinorVersionNumber,
00842 "l00095">00095                                                  KTimeServBuildVersionNumber ),
00843 "l00096">00096                                        aVersion ) )
00844 "l00097">00097         {
00845 "l00098">00098         User::Leave( KErrNotSupported );
00846 "l00099">00099         }
00847 "l00100">00100 
00848 "l00101">00101     class="comment">// Make new session
00849 "l00102">00102     class="comment">//RThread client = Message().Client();
00850 "l00103">00103     class="keywordflow">return class="code" href="class_c_time_server_session.html#73d44aed371951fd548af4329b779411">CTimeServerSession::NewL( *const_cast<CTimeServer*> ( class="keyword">this ) );
00851 "l00104">00104     }
00852 
00853

00854

00857

Member Data Documentation

00858 class="anchor" name="40ac9219e4400c125719d767d564fc3e">

00859

class="mdTable" cellpadding="2" cellspacing="0"> 00860 00861 00868 00869
class="mdRow"> 00862 "0" cellspacing="0" border="0"> 00863 00864 00865 00866
class="md" nowrap valign="top">TInt class="el" href="class_c_time_server.html#40ac9219e4400c125719d767d564fc3e">CTimeServer::iSessionCount [private]
00867
00870 "5" cellpadding="0" border="0"> 00871 00872 00875 00883 00884
00873   00874 00876 00877

00878 iSessionCount, the number of session owned by this server. 00879

00880 Definition at line class="el" href="timeserver_8h-source.html#l00170">170 of file class="el" href="timeserver_8h-source.html">timeserver.h. 00881

00882 Referenced by class="el" href="timeserver_8cpp-source.html#l00121">DecrementSessions(), and class="el" href="timeserver_8cpp-source.html#l00111">IncrementSessions().

00885 class="anchor" name="bd20aae428bf045cb28f7958102a14e1">

00886

class="mdTable" cellpadding="2" cellspacing="0"> 00887 00888 00895 00896
class="mdRow"> 00889 "0" cellspacing="0" border="0"> 00890 00891 00892 00893
class="md" nowrap valign="top">CHeartbeat* class="el" href="class_c_time_server.html#bd20aae428bf045cb28f7958102a14e1">CTimeServer::iHeartbeat [private]
00894
00897 "5" cellpadding="0" border="0"> 00898 00899 00902 00910 00911
00900   00901 00903 00904

00905 iHeartbeat, a periodic timer used to update the client. Owned by CTimeServer object. 00906

00907 Definition at line class="el" href="timeserver_8h-source.html#l00176">176 of file class="el" href="timeserver_8h-source.html">timeserver.h. 00908

00909 Referenced by class="el" href="timeserver_8cpp-source.html#l00181">WaitForTickL(), and class="el" href="timeserver_8cpp-source.html#l00078">~CTimeServer().

00912
The documentation for this class was generated from the following files: 00914
00915 00916 00917 style="x-cell-content-align: top; 00918 width: 100%; 00919 border-spacing: 0px; 00920 border-spacing: 0px;" 00921 cellspacing=0 00922 width=100%> 00923 00924 00925 00926 00927 valign=top> 00928 00937 00959
00929 padding-right: 10px; 00930 padding-left: 10px; 00931 border-right-style: None; 00932 border-left-style: None; 00933 border-top-style: None; 00934 border-bottom-style: None;" 00935 width=50%> 00936

Nokia 2009

00938 padding-right: 10px; 00939 padding-left: 10px; 00940 border-top-style: None; 00941 border-bottom-style: None; 00942 border-right-style: None;" 00943 width=50%> 00944

00945 align=right>00946 title="Back to top">00947 src="top.gif" 00948 x-maintain-ratio=TRUE 00949 alt="Back to top" 00950 style="border: none; 00951 width: 18px; 00952 height: 15px; 00953 float: none; 00954 border-style: none; 00955 border-style: none;" 00956 width=18 00957 height=15 00958 border=0>

00960 00961 00962

Generated by  doxygen 1.6.2