|
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 concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-7809407D-EDC0-5907-B932-0D5726A7ECA2" xml:lang="en"><title>Simple |
|
13 encapsulation of a service provider</title><shortdesc>This document describes how to use derived active object classes |
|
14 to encapsulate services.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <p>Some active object classes do not implement a <codeph>RunL()</codeph> function. |
|
16 Such classes are intended for derivation.</p> |
|
17 <p>For example, the general purpose <codeph>CTimer</codeph> class provides |
|
18 encapsulation of the timer services offered by the <codeph>RTimer</codeph> class, |
|
19 but provides no <codeph>RunL()</codeph> to handle their completion. To use |
|
20 the <codeph>CTimer</codeph> class, you must derive from it again and provide |
|
21 a <codeph>RunL()</codeph> function.</p> |
|
22 <p>Some asynchronous service providers may provide facilities for more than |
|
23 one request to be outstanding simultaneously. However, a single active object |
|
24 can only have one request outstanding. If all the facilities of such an asynchronous |
|
25 service provider must be used in a program, then it must be encapsulated by |
|
26 more than one active object.</p> |
|
27 </conbody></concept> |