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: