diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/epos_landmarks.h --- a/epoc32/include/mw/epos_landmarks.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/epos_landmarks.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,175 @@ -epos_landmarks.h +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Common declarations for Landmarks API +* +*/ + + +#ifndef LANDMARKS_H +#define LANDMARKS_H + +#include + +/** +* Identifies landmarks and landmark categories in a landmark database. +* +* @since S60 3.0 +*/ +typedef TUint32 TPosLmItemId; + +/** +* Identifies global categories. +* +* @since S60 3.0 +*/ +typedef TUint16 TPosLmGlobalCategory; + +/** +* Identifies collection data. +* +* @since S60 3.0 +*/ +enum TPosLmCollectionDataId + { + EPosLmCollDataNone = 0 /**< + Null collection data. */, + EPosLmCollDataCollectionName = 1 /**< + Collection name. */, + EPosLmCollDataCollectionDescription = 2 /**< + Collection description. */, + + EPosLmCollDataContentSpecificDataBegin = 0x8000 /**< + Start of content specific collection meta data. */, + EPosLmCollDataLast = KMaxTUint16 /**< + Last available collection data id. */ + }; + +/** +* Specifies what type of event has occured. +* +* If there is no adequate event type to describe the DB change, +* @p EPosLmEventUnknownChanges, @p EPosLmEventLandmarkUnknownChanges or +* @p EPosLmEventCategoryUnknownChanges will be specified. This event type +* will also be used for mass operations, e.g. delete several landmarks, in +* order to bundle the events. This means that it is possible that multiple +* items have been changed. In this case, all landmarks and/or category +* information should be reread. +* +* @since S60 3.0 +*/ +enum TPosLmEventType + { + EPosLmEventUnknownChanges = 0 /**< Unknown change event. */, + + EPosLmEventNewDefaultDatabaseLocation = 10 /**< + This event is received if the default landmark database location is + changed. The client has to open a new @ref CPosLandmarkDatabase handle + to access the new default database. */, + + EPosLmEventMediaRemoved = 11 /**< + This event is received if the media where the database is stored is + removed. After this, the database cannot be accessed. If the media + is inserted again, the database must still be reopened by the + client. */, + + EPosLmEventLandmarkUnknownChanges = 100 /**< + Unknown change event concerning only landmarks. */, + + EPosLmEventLandmarkCreated = 101 /**< + A new landmark has been created. */, + EPosLmEventLandmarkDeleted = 102 /**< + A landmark has been deleted. */, + EPosLmEventLandmarkUpdated = 103 /**< + A landmark has been updated. */, + + EPosLmEventCategoryUnknownChanges = 200 /**< + Unknown change event concerning only landmark categories. */, + + EPosLmEventCategoryCreated = 201 /**< + A new landmark category has been created. */, + EPosLmEventCategoryDeleted = 202 /**< + A landmark category has been deleted. */, + EPosLmEventCategoryUpdated = 203 /**< + A landmark category has been updated. */ + }; + +/** +* Struct for landmark database change event details. +* +* @since S60 3.0 +*/ +struct TPosLmEvent + { + TPosLmEventType iEventType; /**< Type of event. */ + TPosLmItemId iLandmarkItemId; + /**< ID of an involved database item. This ID indicates that the event is + associated with one database item. If the change is not associated + with exactly one item, item ID will be set to @p KPosLmNullItemId. + For instance this ID will be set to @p KPosLmNullItemId for + @p EPosLmEventUnknownChanges events. */ + TUint8 iUnused[8]; /**< For future use. */ + }; + + +// CONSTANTS +const TUint32 KPosLmNullItemId = 0; +const TUint16 KPosLmNullGlobalCategory = 0; + +const TInt KPosLmIconMaskNotUsed = -1; + +const TInt KPosLmMaxTextFieldLength = 255; +const TInt KPosLmMaxDescriptionLength = 4095; +const TInt KPosLmMaxCategoryNameLength = 124; + +const TUint KPosLastParsedLandmark = KMaxTUint32; + +// Landmark specific error codes +// The 20 error codes in the range -30351 to -30370 is allocated for Landmarks +// subsystem. +const TInt KLandmarksErrorBase = -30351; +const TInt KErrPosLmNotInitialized = KLandmarksErrorBase; +const TInt KErrPosLmUnknownFormat = KLandmarksErrorBase - 1; + +const TInt KPosLmOperationNotComplete = 1001; + +// Database secure format +_LIT(KPosLmDbSecureFormat, "secure[101FE978]"); + +// Database secure policy UID +const TUid KPosLmDbSecureUid = { 0x101FE978 }; + +// Global functions + +/** +* Releases all globally allocated landmark resources. +* +* When using some landmark services, e.g. @ref CPosLandmarkDatabase, +* @ref CPosLandmarkParser and @ref CPosLandmarkEncoder, resources are allocated +* globally. To release these resources, @ref ReleaseLandmarkResources must be +* called. The safest way to do this is to always call this function from the +* client's destructor if the client uses landmark services. +* +* This function can be called any number of times. +* +* The function has an anonymous TAny pointer parameter so that the function +* can be used as a cleanup function for @p TCleanupItem. The pointer is not +* used. +* +* @since S60 3.0 +*/ +IMPORT_C void ReleaseLandmarkResources(TAny* = NULL); + +#endif // LANDMARKS_H + +