|
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 xml:lang="en" id="GUID-FC639517-F138-5E84-B57A-6347F5A47B88"><title>Names and fullnames</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A reference counting object can be identified by a <i>name</i>. A name consists of a string of characters whose length must not be greater than <xref href="GUID-81C4F0D1-1D0A-3F43-8980-45B5343CAB9B.dita"><apiname>KMaxName</apiname></xref>, a symbol defined in e32std.h. </p> <p>A name can contain any character except: *, ? and :, i.e. the characters asterisk, question mark and single colon. The system static function <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-F3DA1084-412D-3EB7-AA1A-5B743FC93A93"><apiname>User::ValidateName()</apiname></xref> is available to do this. </p> <p>A reference counting object can also be identified by its <i>full name</i>. This is descriptive of the reference counting object's ownership hierarchy, i.e. it is a name that identifies the reference counting object in the context of its owning reference counting object. </p> <p>The full name is a concatenation of: </p> <ul><li id="GUID-96BE031B-69EA-59F8-A983-65F1AA1E3FCF"><p>the <i>name</i> of the owning reference counting object, </p> </li> <li id="GUID-A5AD0140-0048-5325-873C-9A759F918C18"><p>a double colon <i>::</i> , </p> </li> <li id="GUID-EE78A739-423C-55BA-8257-48A1F226494E"><p>the name of the reference counting object. </p> </li> </ul> <p>For example, given the three <xref href="GUID-9230EF62-376A-389C-B720-7C1EDCB7EA97.dita"><apiname>CObject</apiname></xref> derived objects: <codeph>x</codeph>, <codeph>y</codeph> and <codeph>z</codeph> with names: <codeph>one</codeph>, <codeph>two</codeph> and <codeph>three</codeph> respectively, where <codeph>x</codeph> is owned by <codeph>y</codeph> and <codeph>y</codeph>, in turn, is owned by <codeph>z</codeph>: </p> <codeblock id="GUID-93857905-683A-5AA3-B36A-12BA87401A8E" xml:space="preserve">_LIT(KTxtOne,"one"); |
|
13 _LIT(KTxtTwo,"two"); |
|
14 _LIT(KTxtThree,"three"); |
|
15 |
|
16 class CSomeClass : public CObject |
|
17 { |
|
18 ... |
|
19 }; |
|
20 |
|
21 ... |
|
22 CSomeClass* x; |
|
23 CSomeClass* y; |
|
24 CSomeClass* z; |
|
25 ... |
|
26 x = new(ELeave) CSomeClass; |
|
27 y = new(ELeave) CSomeClass; |
|
28 z = new(ELeave) CSomeClass; |
|
29 ... |
|
30 x->SetName(KTxtOne); |
|
31 y->SetName(KTxtTwo); |
|
32 z->SetName(KTxtThree); |
|
33 ... |
|
34 x->SetOwner(y); |
|
35 y->SetOwner(z); |
|
36 ... |
|
37 </codeblock> <ul><li id="GUID-AC8EAFEF-8F16-5074-B518-E3880F2851B3"><p>the full name of <codeph>x</codeph> is, <codeph>three::two::one</codeph>. </p> </li> <li id="GUID-09BAC1B3-E6B8-59F6-868E-F6D5DE11450C"><p>the full name of <codeph>y</codeph> is, <codeph>three::two</codeph>. </p> </li> <li id="GUID-D4AC3B84-53C8-5716-8CB7-6901100DE1D0"><p>the full name of <codeph>z</codeph> is <codeph>three</codeph>, the same as its name. </p> </li> </ul> <p>Names give reference counting objects an identity and are used when searching for a specific object or a group of related objects. </p> <p>See also: </p> <ul><li id="GUID-F24D4B6F-B263-5745-98B1-0DFB19C11819"><p> <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-F3DA1084-412D-3EB7-AA1A-5B743FC93A93"><apiname>User::ValidateName()</apiname></xref> </p> </li> <li id="GUID-ACBFD5F0-10EB-5010-A1CA-8F9CDAE31231"><p> <xref href="GUID-8EC6F10D-25D3-33BD-9B6F-53A96BFBF788.dita"><apiname>TFindHandleBase</apiname></xref> </p> </li> </ul> </conbody></concept> |