Symbian3/SDK/Source/GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita
changeset 0 89d6a7a84779
equal deleted inserted replaced
-1:000000000000 0:89d6a7a84779
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE reference
       
    11   PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
       
    12 <reference id="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22" xml:lang="en"><title>linkedlist:
       
    13 Using the Linked List classes</title><shortdesc/><prolog><metadata><keywords/></metadata></prolog><refbody>
       
    14 <section id="GUID-4B81C04C-94DD-4694-9BD9-447ADE72B294"><p>The following examples show the use of the linked list classes: </p> <ul>
       
    15 <li id="GUID-F204E5EC-593B-556D-83DC-72B7B5C7C46A"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"> Singly linked list example</xref>  </p> </li>
       
    16 <li id="GUID-295D6285-199E-5FD8-B0B9-90FA546831F8"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"> Doubly linked list example</xref>  </p> </li>
       
    17 <li id="GUID-F459FF26-D837-5E5F-BB50-67D12D3EE93F"><p><xref href="GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita#GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22/GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"> Delta queue example</xref>  </p> </li>
       
    18 </ul> </section>
       
    19 <section id="GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"><title>Singly linked
       
    20 list example</title> <p>This example application demonstrates the use of singly
       
    21 linked lists. The templated <xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref> class is used to create
       
    22 a singly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
       
    23 link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-54304ba8-7028-43b8-89b8-d89432684981.zip" scope="external">sgllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-54304ba8-7028-43b8-89b8-d89432684981.html" scope="peer">browse </xref>to view the example.</p> <p><b>Description</b> </p> <p>The
       
    24 example creates a singly linked list of objects of the <xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref> class.
       
    25 This list represents a long number. An object of class <xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref> owns
       
    26 the list. The user can edit this list using the functions defined in the <codeph>CLongNumber</codeph> class.
       
    27 The following edit operations are possible: </p> <ul>
       
    28 <li id="GUID-C793B73E-9037-5B22-8A3A-EFAD7A666D53"><p>Insert an object of
       
    29 the <codeph>TDigit</codeph> class at the start of the singly linked list </p> </li>
       
    30 <li id="GUID-C46B31C9-49FF-5457-9157-E55316F26252"><p>Insert an object of
       
    31 the <codeph>TDigit</codeph> class at the end of the singly linked list </p> </li>
       
    32 <li id="GUID-9AFD5005-AA6A-5D7D-9B96-35CBA4791128"><p>Remove an object of
       
    33 the <codeph>TDigit</codeph> class from the end of the singly linked list </p> </li>
       
    34 </ul> <p>The user can perform any of these operations by pressing keys specified
       
    35 in the menu. <codeph>CLongNumber</codeph> is an active object class and handles
       
    36 the key press events in the <codeph>CLongNumber::RunL()</codeph> function.The <codeph>CLongNumber::ReadFunc()</codeph> function
       
    37 displays a menu and waits for an asynchronous key press event. </p> <p>An
       
    38 object of the templated <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref> class is used to traverse
       
    39 this linked list. The sum of all digits of the number represented by the linked
       
    40 list is displayed to the user. </p> <p>An object of the <xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref> class
       
    41 is used to traverse the <codeph>CLongNumber::iNumber</codeph> list and print
       
    42 the sum of all digits of the number represented by this list. The <codeph>CAdder::Add()</codeph> function
       
    43 gets this sum. </p><p><b>Related APIs</b></p><ul>
       
    44 <li><p><xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref></p></li>
       
    45 <li><p><xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref></p></li>
       
    46 <li><p><xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref></p></li>
       
    47 <li><p><xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
       
    48 </ul> <p><b>Design and implementation</b> </p> <p>Figure 1 shows the classes
       
    49 in the example. </p> <fig id="GUID-7BB458A7-C1E6-5919-A503-BFBE695432AA">
       
    50 <title>     Figure 1. Classes in the singly linked list example          
       
    51     </title>
       
    52 <image href="GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e228222_href.jpg" placement="inline"/>
       
    53 </fig> <p><b>Class summary</b></p><ul>
       
    54 <li><p><xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref></p></li>
       
    55 <li><p> <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
       
    56 </ul><p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
    57 Symbian OS build process</xref> describes how to build this example. </p> <p>For
       
    58 the emulator, the example builds an executable called <filepath>sgllist.exe</filepath> in
       
    59 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p><p><b>See
       
    60 also:</b></p><p><xref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita">Using
       
    61 Singly Linked Lists</xref></p> </section>
       
    62 <section id="GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"><title>Doubly linked
       
    63 list example</title> <p>This example application demonstrates the use of doubly
       
    64 linked lists. The templated <xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> class is used create
       
    65 a doubly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
       
    66 link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.zip" scope="external">dbllist.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-3a268b1a-9a7e-49ae-bc76-f99bdc3b32f5.html" scope="peer">browse </xref>to view the example code</p> <p><b>Description</b> </p> <p>The
       
    67 example creates a doubly linked list of objects of the <codeph>TLetter</codeph> class.
       
    68 This list represents a character string. An object of class <codeph>CMyStringReverse</codeph> owns
       
    69 this string. The user can edit this string using the functions defined in
       
    70 the <codeph>CMyStringReverse</codeph> class. The following edit operations
       
    71 are possible: </p> <ul>
       
    72 <li id="GUID-D3B39123-1249-59DD-BC1F-2D62B7F9DE84"><p>Insert a character at
       
    73 the start of the list </p> </li>
       
    74 <li id="GUID-E6CEC00A-B6C1-53B2-9AAA-870EA8B06A5B"><p>Insert a character at
       
    75 the end of the list </p> </li>
       
    76 </ul> <p>The user can perform either of these operations by pressing keys
       
    77 specified in the menu. <codeph>CMyStringReverse</codeph> is an active object
       
    78 class and handles key press events in the <codeph>CMyStringReverse::RunL()</codeph> function.
       
    79 The <codeph>CMyStringReverse::ReadFunc()</codeph> function displays a menu
       
    80 and waits for an asynchronous key press event. </p> <p>The <codeph>CMyStringReverse</codeph> class
       
    81 has a doubly linked list iterator, <codeph>iIteratorString</codeph>. The <codeph>iIteratorString</codeph> object
       
    82 iterates through the list <codeph>iString</codeph> from start to end to print
       
    83 the string reversed. </p><p><b>Design and implementation</b></p><p>Figure
       
    84 2 shows the classes in the example.</p><fig id="GUID-67F3F952-D0A8-4A28-8CB2-0394C1562A29">
       
    85 <title> Figure 2. Classes in the doubly linked list example </title>
       
    86 <image href="GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e228361_href.jpg" placement="inline"/>
       
    87 </fig><p><b>Class summary</b></p><ul>
       
    88 <li><p><xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> - A templated class that provides the behaviour
       
    89 for managing a doubly linked list.</p></li>
       
    90 </ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
    91 Symbian OS build process</xref> describes how to build this example. </p> <p>For
       
    92 the emulator, the example builds an executable called <filepath>dbllist.exe</filepath> in
       
    93 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> <p><b>See
       
    94 also</b> </p> <p><xref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita">Using
       
    95 Doubly Linked Lists</xref>  </p> <p><b>Example code</b> </p> </section>
       
    96 <section id="GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"><title>Delta queue
       
    97 example</title> <p>This example application demonstrates the use of the delta
       
    98 queue. The templated <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref> class is used create a delta
       
    99 queue. </p> <p><b>Download</b> </p> <p>Click on the following link to download
       
   100 the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-6a73c507-073b-4993-aa02-a677a384bafb.zip" scope="external">deltaque.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-6a73c507-073b-4993-aa02-a677a384bafb.html" scope="peer">browse </xref>to view the example code.</p> <p><b>Description</b> </p> <p>The
       
   101 example creates an object of the <codeph>CTimerEntry</codeph> class. This
       
   102 is a <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> derived class. An object of this class generates
       
   103 timer events by using the <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref> function. The
       
   104 data member of this class, <codeph>iQueue</codeph> is a delta list. The offset
       
   105 value of each node in this list is the tick count after each timer event.
       
   106 The <codeph>CTimerEntry::Arbitrator()</codeph> function decides the action
       
   107 to be performed for each event generated by the timer. It either adds tick
       
   108 counts to the list or removes elements from the list based on the state of
       
   109 the queue. </p><p><b>Related APIs</b></p><ul>
       
   110 <li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
       
   111 <li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita#GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A/GUID-F389C301-D56B-3981-9C26-180E02BFF171"><apiname>CTimer::After()</apiname></xref></p></li>
       
   112 </ul><p><b>Design and implementation</b></p><p> Figure 3 shows the classes
       
   113 of the example. </p><fig id="GUID-2E093EFA-7A18-4623-AE31-3FA1FDB103F5">
       
   114 <title> Figure 3. Classes of the delta queue example </title>
       
   115 <image href="GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e228489_href.jpg" placement="inline"/>
       
   116 </fig><p><b>Class summary</b></p><ul>
       
   117 <li><p> <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref></p></li>
       
   118 <li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
       
   119 </ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
   120 Symbian OS build process</xref> describes how to build this example. </p> <p>For
       
   121 the emulator, the example builds an executable called <filepath>deltaque.exe</filepath> in
       
   122 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </section>
       
   123 </refbody></reference>