williamr@2: /* williamr@2: * Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: TPosLmDatabaseSettings class williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef TPOSLMDATABASESETTINGS_H williamr@2: #define TPOSLMDATABASESETTINGS_H williamr@2: williamr@2: #include <e32std.h> williamr@2: williamr@2: const TInt KPosLmDatabaseName = 64; williamr@2: #define KPOSLMDATABASESETTINGSRESERVEDSIZE 31 williamr@2: williamr@2: typedef TBuf<KPosLmDatabaseName> TPosLmDatabaseName; williamr@2: williamr@2: /** williamr@2: * @ref TPosLmDatabaseSettings encapsulates the attributes that can be set for williamr@2: * a landmark database. williamr@2: * williamr@2: * The only available attribute is the displayable name. williamr@2: * williamr@2: * To set a new display name, create a @ref HPosLmDatabaseInfo object williamr@2: * containing the URI of the database. Call @ref SetDatabaseName on the williamr@2: * @ref TPosLmDatabaseSettings member in @ref HPosLmDatabaseInfo and then williamr@2: * pass the @ref HPosLmDatabaseInfo to williamr@2: * @ref CPosLmDatabaseManager::ModifyDatabaseSettingsL. williamr@2: * williamr@2: * When retrieving settings for a database, @ref IsAttributeSet can be used to williamr@2: * find out whether display name is set for the database or not. williamr@2: * williamr@2: * @lib eposlmdbmanlib.lib williamr@2: * @since S60 3.0 williamr@2: */ williamr@2: class TPosLmDatabaseSettings williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Enumeration of the attributes that can be set for a landmark williamr@2: * database. williamr@2: */ williamr@2: enum TAttribute williamr@2: { williamr@2: EName = 0x01 /**< williamr@2: Displayable name for the landmark database */ williamr@2: }; williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Default constructor. williamr@2: */ williamr@2: IMPORT_C TPosLmDatabaseSettings(); williamr@2: williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Checks whether a database attribute is set in this instance. williamr@2: * williamr@2: * @param aDbAttribute The database attribute to check. williamr@2: * @return @p ETrue if the attribute is set, otherwise @p EFalse. williamr@2: */ williamr@2: IMPORT_C TBool IsAttributeSet( TAttribute aDbAttribute ) const; williamr@2: williamr@2: /** williamr@2: * Unset a database attribute. williamr@2: * williamr@2: * If an attribute is not set in this instance and the instance is williamr@2: * passed as input to a function for modifying the settings for a williamr@2: * database, e.g. @ref CPosLmDatabaseManager::ModifyDatabaseSettingsL, williamr@2: * the attribute will be removed from the database. williamr@2: * williamr@2: * @param aDbAttribute The database attribute to unset. williamr@2: */ williamr@2: IMPORT_C void UnsetAttribute( TAttribute aDbAttribute ); williamr@2: williamr@2: /** williamr@2: * Retrieves the displayable name for the database. williamr@2: * williamr@2: * If the @p EName attribute is not set, an empty descriptor is returned. williamr@2: * williamr@2: * @return A pointer to the name descriptor. This pointer is valid until williamr@2: * the @ref TPosLmDatabaseSettings instance is destroyed. williamr@2: */ williamr@2: IMPORT_C TPtrC DatabaseName() const; williamr@2: williamr@2: /** williamr@2: * Set a displayable name for the database. williamr@2: * williamr@2: * If an empty descriptor is set, the database display name will be williamr@2: * set to an empty string. williamr@2: * williamr@2: * @param[in] aDatabaseName The new name for the database. williamr@2: */ williamr@2: IMPORT_C void SetDatabaseName( const TPosLmDatabaseName& aDatabaseName ); williamr@2: williamr@2: private: williamr@2: williamr@2: TUint8 iAttributes; williamr@2: TPosLmDatabaseName iName; williamr@2: TUint8 iReserved[KPOSLMDATABASESETTINGSRESERVEDSIZE]; williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // TPOSLMDATABASESETTINGS_H williamr@2: williamr@2: