epoc32/include/mw/epos_landmarks.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- 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 <e32std.h>
+
+/**
+*  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
+
+