Symbian3/SDK/Source/GUID-F15B9BDF-EDF8-5684-A0FC-C0A08F9C1F22.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     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
       
    15 show the use of the linked list classes: </p> <ul>
       
    16 <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>
       
    17 <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>
       
    18 <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>
       
    19 </ul> </section>
       
    20 <section id="GUID-4366D8F9-3E8F-53B2-BB3C-A32CA13DA96D"><title>Singly linked
       
    21 list example</title> <p>This example application demonstrates the use of singly
       
    22 linked lists. The templated <xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref> class is used to create
       
    23 a singly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
       
    24 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
       
    25 example creates a singly linked list of objects of the <xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref> class.
       
    26 This list represents a long number. An object of class <xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref> owns
       
    27 the list. The user can edit this list using the functions defined in the <codeph>CLongNumber</codeph> class.
       
    28 The following edit operations are possible: </p> <ul>
       
    29 <li id="GUID-C793B73E-9037-5B22-8A3A-EFAD7A666D53"><p>Insert an object of
       
    30 the <codeph>TDigit</codeph> class at the start of the singly linked list </p> </li>
       
    31 <li id="GUID-C46B31C9-49FF-5457-9157-E55316F26252"><p>Insert an object of
       
    32 the <codeph>TDigit</codeph> class at the end of the singly linked list </p> </li>
       
    33 <li id="GUID-9AFD5005-AA6A-5D7D-9B96-35CBA4791128"><p>Remove an object of
       
    34 the <codeph>TDigit</codeph> class from the end of the singly linked list </p> </li>
       
    35 </ul> <p>The user can perform any of these operations by pressing keys specified
       
    36 in the menu. <codeph>CLongNumber</codeph> is an active object class and handles
       
    37 the key press events in the <codeph>CLongNumber::RunL()</codeph> function.The <codeph>CLongNumber::ReadFunc()</codeph> function
       
    38 displays a menu and waits for an asynchronous key press event. </p> <p>An
       
    39 object of the templated <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref> class is used to traverse
       
    40 this linked list. The sum of all digits of the number represented by the linked
       
    41 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
       
    42 is used to traverse the <codeph>CLongNumber::iNumber</codeph> list and print
       
    43 the sum of all digits of the number represented by this list. The <codeph>CAdder::Add()</codeph> function
       
    44 gets this sum. </p><p><b>Related APIs</b></p><ul>
       
    45 <li><p><xref href="GUID-D0AE0223-82DC-369A-A8FB-C2086C1EC77C.dita"><apiname>CAdder</apiname></xref></p></li>
       
    46 <li><p><xref href="GUID-F20187A8-CC62-34C6-830C-FB077515AAF8.dita"><apiname>CLongNumber</apiname></xref></p></li>
       
    47 <li><p><xref href="GUID-129B4F4D-500E-37E8-9D29-94E3E6D11BD9.dita"><apiname>TDigit</apiname></xref></p></li>
       
    48 <li><p><xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
       
    49 </ul> <p><b>Design and implementation</b> </p> <p>Figure 1 shows the classes
       
    50 in the example. </p> <fig id="GUID-7BB458A7-C1E6-5919-A503-BFBE695432AA">
       
    51 <title>     Figure 1. Classes in the singly linked list example          
       
    52     </title>
       
    53 <image href="GUID-D6B332EB-D9D7-5598-98C7-E73164A2057D_d0e256243_href.jpg" placement="inline"/>
       
    54 </fig> <p><b>Class summary</b></p><ul>
       
    55 <li><p><xref href="GUID-40BA1263-BE07-3C7F-955E-0BBC632E7C58.dita"><apiname>TSglQue</apiname></xref></p></li>
       
    56 <li><p> <xref href="GUID-0A865633-5038-3320-A472-A2EE18F04FBE.dita"><apiname>TSglQueIter</apiname></xref></p></li>
       
    57 </ul><p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
    58 Symbian build process</xref> describes how to build this example. </p> <p>For
       
    59 the emulator, the example builds an executable called <filepath>sgllist.exe</filepath> in
       
    60 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p><p><b>See
       
    61 also:</b></p><p><xref href="GUID-052E9582-9A35-50B0-A32E-F7E6A01A2E2A.dita">Using
       
    62 Singly Linked Lists</xref></p> </section>
       
    63 <section id="GUID-FC5F8D9A-C594-5FBB-9AD1-8DEB72A5F5BD"><title>Doubly linked
       
    64 list example</title> <p>This example application demonstrates the use of doubly
       
    65 linked lists. The templated <xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> class is used create
       
    66 a doubly linked list. </p> <p><b>Download</b> </p> <p>Click on the following
       
    67 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
       
    68 example creates a doubly linked list of objects of the <codeph>TLetter</codeph> class.
       
    69 This list represents a character string. An object of class <codeph>CMyStringReverse</codeph> owns
       
    70 this string. The user can edit this string using the functions defined in
       
    71 the <codeph>CMyStringReverse</codeph> class. The following edit operations
       
    72 are possible: </p> <ul>
       
    73 <li id="GUID-D3B39123-1249-59DD-BC1F-2D62B7F9DE84"><p>Insert a character at
       
    74 the start of the list </p> </li>
       
    75 <li id="GUID-E6CEC00A-B6C1-53B2-9AAA-870EA8B06A5B"><p>Insert a character at
       
    76 the end of the list </p> </li>
       
    77 </ul> <p>The user can perform either of these operations by pressing keys
       
    78 specified in the menu. <codeph>CMyStringReverse</codeph> is an active object
       
    79 class and handles key press events in the <codeph>CMyStringReverse::RunL()</codeph> function.
       
    80 The <codeph>CMyStringReverse::ReadFunc()</codeph> function displays a menu
       
    81 and waits for an asynchronous key press event. </p> <p>The <codeph>CMyStringReverse</codeph> class
       
    82 has a doubly linked list iterator, <codeph>iIteratorString</codeph>. The <codeph>iIteratorString</codeph> object
       
    83 iterates through the list <codeph>iString</codeph> from start to end to print
       
    84 the string reversed. </p><p><b>Design and implementation</b></p><p>Figure
       
    85 2 shows the classes in the example.</p><fig id="GUID-67F3F952-D0A8-4A28-8CB2-0394C1562A29">
       
    86 <title> Figure 2. Classes in the doubly linked list example </title>
       
    87 <image href="GUID-21A1D1D2-524E-560E-88C8-16E2E49E2B7F_d0e256382_href.jpg" placement="inline"/>
       
    88 </fig><p><b>Class summary</b></p><ul>
       
    89 <li><p><xref href="GUID-E5E9834A-63CA-3F03-88D3-85B912ADA54C.dita"><apiname>TDblQue</apiname></xref> - A templated class that provides the behaviour
       
    90 for managing a doubly linked list.</p></li>
       
    91 </ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
    92 Symbian build process</xref> describes how to build this example. </p> <p>For
       
    93 the emulator, the example builds an executable called <filepath>dbllist.exe</filepath> in
       
    94 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> <p><b>See
       
    95 also</b> </p> <p><xref href="GUID-F45EA14E-F857-5D59-BFBA-E2F563287359.dita">Using
       
    96 Doubly Linked Lists</xref>  </p> <p><b>Example code</b> </p> </section>
       
    97 <section id="GUID-7FFDF885-72F4-543E-A93E-C6A57D3D7DE0"><title>Delta queue
       
    98 example</title> <p>This example application demonstrates the use of the delta
       
    99 queue. The templated <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref> class is used create a delta
       
   100 queue. </p> <p><b>Download</b> </p> <p>Click on the following link to download
       
   101 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
       
   102 example creates an object of the <codeph>CTimerEntry</codeph> class. This
       
   103 is a <xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> derived class. An object of this class generates
       
   104 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
       
   105 data member of this class, <codeph>iQueue</codeph> is a delta list. The offset
       
   106 value of each node in this list is the tick count after each timer event.
       
   107 The <codeph>CTimerEntry::Arbitrator()</codeph> function decides the action
       
   108 to be performed for each event generated by the timer. It either adds tick
       
   109 counts to the list or removes elements from the list based on the state of
       
   110 the queue. </p><p><b>Related APIs</b></p><ul>
       
   111 <li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
       
   112 <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>
       
   113 </ul><p><b>Design and implementation</b></p><p> Figure 3 shows the classes
       
   114 of the example. </p><fig id="GUID-2E093EFA-7A18-4623-AE31-3FA1FDB103F5">
       
   115 <title> Figure 3. Classes of the delta queue example </title>
       
   116 <image href="GUID-8CF0C00C-0FDF-517E-96FB-84F718237F61_d0e256511_href.jpg" placement="inline"/>
       
   117 </fig><p><b>Class summary</b></p><ul>
       
   118 <li><p> <xref href="GUID-E67BB56F-F9DD-316D-BC16-ED60D31A5925.dita"><apiname>TDeltaQue</apiname></xref></p></li>
       
   119 <li><p><xref href="GUID-5733DF34-5B54-3044-BBED-3BFECB7ACE7A.dita"><apiname>CTimer</apiname></xref> - Base class for a timer active object.</p></li>
       
   120 </ul> <p><b>Build</b> </p> <p><xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">The
       
   121 Symbian build process</xref> describes how to build this example. </p> <p>For
       
   122 the emulator, the example builds an executable called <filepath>deltaque.exe</filepath> in
       
   123 the <filepath>epoc32\release\winscw\&lt;udeb or urel&gt;\</filepath> folder. </p> </section>
       
   124 </refbody></reference>