|
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-D9EA2B10-B789-5CC1-9BD0-23B4FA7E0821" xml:lang="en"><title>Properties</title><shortdesc>This topic explains the properties of publish and subscribe.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
13 <p>A property has the two attributes: identity and type.</p> |
|
14 <section id="GUID-A5CBB14F-D37F-41C5-8D00-37C3D07708F6"><title>Identity</title> <p>A property is identified by a 64-bit integer |
|
15 made up of two 32-bit parts: the category and the key.</p> <p>A property belongs |
|
16 to a category, and a category is identified by a UID.</p> <p>A key is a 32-bit |
|
17 value that identifies a specific property within a category. The meaning applied |
|
18 to the key depends on the kind of enumeration scheme set up for the category. |
|
19 At its simplest, a key can be an index value. It can also be another UID, |
|
20 if the category is designed to be generally extensible.</p> </section> |
|
21 <section id="GUID-0351DF1A-8DEE-49D6-AD7D-6575E9DF5B56"><title>Type</title> <p>A property can be:</p> <ul> |
|
22 <li id="GUID-7C7CE552-0608-502F-8A2D-87071C4157AE"><p>a single 32-bit value</p> </li> |
|
23 <li id="GUID-E96FE3B3-C66F-5CE9-9C0F-A04BBB20C7BE"><p>a contiguous set of |
|
24 bytes, referred to as a byte-array, whose length can vary from 0 to 512 bytes</p> </li> |
|
25 <li id="GUID-4F8B6257-4410-5F40-A211-B14239CEC64F"><p>Unicode text.</p> </li> |
|
26 </ul> <p>From the viewpoint of the implementation, Unicode text is treated |
|
27 as a byte-array; the detail is hidden by the API.</p> <p>Once defined, a property |
|
28 value can change, but the property type cannot. Byte-array type properties |
|
29 can also change length provided the length does not exceed the value <xref href="GUID-C4776034-D190-3FC4-AF45-C7F195093AC3.dita#GUID-C4776034-D190-3FC4-AF45-C7F195093AC3/GUID-57E64054-610A-31D1-AD7F-E2F9F9FC1DCB"><apiname>RProperty::KMaxPropertySize</apiname></xref>. |
|
30 The limit on size of property ensures some limit on RAM usage.</p><p> |
|
31 limit on size of property ensures some limit on RAM usage.</p><p>The API |
|
32 allows byte-array and Unicode text type properties to be pre-allocated when |
|
33 they are defined. This means that the time taken to set the values is bounded. |
|
34 However, if the length of these property types subsequently increases, then |
|
35 memory allocation may take place, and no guarantees can be made on the time |
|
36 taken to set them.</p><p>Note that the<xref href="GUID-C4776034-D190-3FC4-AF45-C7F195093AC3.dita#GUID-C4776034-D190-3FC4-AF45-C7F195093AC3/GUID-F8DE443B-B208-353C-A98E-AA52C4FE6530"><apiname>RProperty::ELargeByteArray</apiname></xref> property |
|
37 type can never provide a real-time guarantee.</p><p>Properties and their values |
|
38 are defined, set and retrieved using <xref href="GUID-C4776034-D190-3FC4-AF45-C7F195093AC3.dita"><apiname>RProperty</apiname></xref> . </p></section> |
|
39 </conbody></concept> |