26 collect words from the user and another active object to receive words |
26 collect words from the user and another active object to receive words |
27 from the Inverter. Each active object has its own console for display. |
27 from the Inverter. Each active object has its own console for display. |
28 More information about running the example is given in the build section |
28 More information about running the example is given in the build section |
29 of this document. </p> <p><b>Design</b> </p> <p>The following block |
29 of this document. </p> <p><b>Design</b> </p> <p>The following block |
30 diagram describes the example in more detail. </p> <fig id="GUID-27A0C389-EDDD-5E17-82EE-2727F21803AF"> |
30 diagram describes the example in more detail. </p> <fig id="GUID-27A0C389-EDDD-5E17-82EE-2727F21803AF"> |
31 <image href="GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e355751_href.png" placement="inline"/> |
31 <image href="GUID-CD7F507C-CDD5-5612-BA1B-72641D28FA4A_d0e361654_href.png" placement="inline"/> |
32 </fig><p><filepath>CCollector.exe</filepath> is the Collector process. |
32 </fig><p><filepath>CCollector.exe</filepath> is the Collector process. |
33 The user starts the Collector and creates an active scheduler and |
33 The user starts the Collector and creates an active scheduler and |
34 two global message queues. It also starts the Inverter process called <filepath>Inverter.exe</filepath>. The Collector creates one active object |
34 two global message queues. It also starts the Inverter process called <filepath>Inverter.exe</filepath>. The Collector creates one active object |
35 to collect words from the user and another active object to monitor |
35 to collect words from the user and another active object to monitor |
36 its input queue (InverterOutQ). The active object to collect words |
36 its input queue (InverterOutQ). The active object to collect words |
44 checks for a stop command, which closes the message queue and the |
44 checks for a stop command, which closes the message queue and the |
45 two process. The Inverter inverts the received words and sends the |
45 two process. The Inverter inverts the received words and sends the |
46 result to <codeph>InverterOutQ</codeph>. </p><p>In the Collector process, |
46 result to <codeph>InverterOutQ</codeph>. </p><p>In the Collector process, |
47 the active object that monitors the <codeph>InveterOutQ</codeph> opens |
47 the active object that monitors the <codeph>InveterOutQ</codeph> opens |
48 the message queue, receives the received words and displays them |
48 the message queue, receives the received words and displays them |
49 in its console. It uses the <xref href="GUID-22E24B08-175B-3446-9D48-9AC4B1663E35.dita"><apiname>NotifyDataAvailable(TRequestStatus&)</apiname></xref> API to monitor the queue for the next set of data. </p><p>The Class diagram of the example is shown below </p><fig id="GUID-E93EF1D6-1B9D-4C76-80B0-1FF660B5C75A"> |
49 in its console. It uses the <xref href="GUID-22E24B08-175B-3446-9D48-9AC4B1663E35.dita"><apiname>NotifyDataAvailable(TRequestStatus&)</apiname></xref> API to monitor the queue for the next set of data. </p><p>The Class |
50 <image href="GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e355800_href.png" placement="inline"/> |
50 diagram of the example is shown below </p><fig id="GUID-E93EF1D6-1B9D-4C76-80B0-1FF660B5C75A"> |
|
51 <image href="GUID-3560E862-CB68-584F-B9B6-FCD9F0D202DC_d0e361702_href.png" placement="inline"/> |
51 </fig> </section> |
52 </fig> </section> |
52 <section id="GUID-86B04D06-7046-49BD-AE1A-57D5E406F864"><title>Class |
53 <section id="GUID-86B04D06-7046-49BD-AE1A-57D5E406F864"><title>Class |
53 summary</title><ul> |
54 summary</title><ul> |
54 <li><p> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> - Periodic timer active object.</p></li> |
55 <li><p> <xref href="GUID-3CECC9FC-58C1-3117-AAF2-FDF88341F56F.dita"><apiname>CPeriodic</apiname></xref> - Periodic timer active object.</p></li> |
55 <li><p><xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname> RMsgQueue</apiname></xref> - A handle to a message queue.</p></li> |
56 <li><p><xref href="GUID-5195B8D1-851E-3BEE-A72D-1841C0937300.dita"><apiname> RMsgQueue</apiname></xref> - A handle to a message queue.</p></li> |
56 <li><p><xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita"><apiname> RProcess </apiname></xref> - A handle to a process.</p></li> |
57 <li><p><xref href="GUID-9DD1EA2B-DC59-315C-8E9C-CE6D9461B695.dita"><apiname> RProcess </apiname></xref> - A handle to a process.</p></li> |
57 <li><p><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname> CActive</apiname></xref> - The core class of the active |
58 <li><p><xref href="GUID-067293BF-B28C-3CEC-92F4-1351A795EA7F.dita"><apiname> CActive</apiname></xref> - The core class of the active |
58 object abstraction.</p></li> |
59 object abstraction.</p></li> |
59 </ul></section> |
60 </ul></section> |
60 <section id="GUID-F8D41313-760D-417E-834C-09D41F4EDB06"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian |
61 <section id="GUID-F8D41313-760D-417E-834C-09D41F4EDB06"><title>Build</title> <p>The example builds an executable called <filepath>Inverter.exe</filepath> and <filepath>Collector.exe</filepath> in the standard locations. </p> <p>To run the example, first build <filepath>Inverter.exe</filepath> and start <filepath>Collector.exe</filepath> from the file system |
61 build process</xref> describes how to build this example application. </p> <p>The example builds an executable called <filepath>Inverter.exe</filepath> and <filepath>Collector.exe</filepath> in the standard locations. </p> <p>To run the example, first build <filepath>Inverter.exe</filepath> and start <filepath>Collector.exe</filepath> from the file system |
|
62 or from your IDE. After launching the .exes (and depending on the |
62 or from your IDE. After launching the .exes (and depending on the |
63 emulator you are using) you may need to navigate away from the application |
63 emulator you are using) you may need to navigate away from the application |
64 launcher or shell screen to view the console. </p> <p>A message input |
64 launcher or shell screen to view the console. </p> <p>A message input |
65 console is used for user input and an output message console is used |
65 console is used for user input and an output message console is used |
66 to display inverted words. The output message console that is displayed |
66 to display inverted words. The output message console that is displayed |