loc_plat/location_centre_api/inc/lclocationappinfo.h
changeset 0 522cd55cc3d7
child 13 983e8c15ad19
equal deleted inserted replaced
-1:000000000000 0:522cd55cc3d7
       
     1 /*
       
     2 * ============================================================================
       
     3 *  Name        : lclocationappinfo.h
       
     4 /*
       
     5 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     6 * All rights reserved.
       
     7 * This component and the accompanying materials are made available
       
     8 * under the terms of "Eclipse Public License v1.0"
       
     9 * which accompanies this distribution, and is available
       
    10 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
    11 *
       
    12 * Initial Contributors:
       
    13 * Nokia Corporation - initial contribution.
       
    14 *
       
    15 * Contributors:
       
    16 *
       
    17 * Description:  Location Application Information structures.
       
    18 *
       
    19 */
       
    20 
       
    21 /**
       
    22  *  @file lclocationappinfo.h
       
    23  * 
       
    24  *  This file provides the information about the components registered with
       
    25  *  Location Centre.
       
    26  *
       
    27  *  @note The components which can register with Location Centre are of
       
    28  *  two types
       
    29  *  - Applications
       
    30  *  - Location based services / contents.
       
    31  *
       
    32  *  These Client Applications or Services/Contents which register with Location
       
    33  *  Centre will be called Location based Applications henceforth.
       
    34  *
       
    35  *  @lib lcservice.lib
       
    36  *  @since S60 v5.0
       
    37  */
       
    38 
       
    39 #ifndef C_LCLOCATIONAPPINFO_H
       
    40 #define C_LCLOCATIONAPPINFO_H
       
    41 
       
    42 // SYSTEM INCLUDES
       
    43 #include <e32base.h>
       
    44 
       
    45 // USER INCLUDES
       
    46 #include "lclocationappfilter.h"
       
    47 
       
    48 // FORWARD DECLARATIONS
       
    49 class CGulIcon;
       
    50 
       
    51 /**
       
    52  *  @class CLcLocationAppInfo
       
    53  *  Location Application information.
       
    54  *
       
    55  *  The class defines the information pertaining to an application registered 
       
    56  *  with Location Centre.
       
    57  *
       
    58  *  @lib lcservice.lib
       
    59  *  @since S60 v5.0
       
    60  */
       
    61 class CLcLocationAppInfo : public CBase
       
    62     {
       
    63 public:
       
    64     /**
       
    65      * @enum TLcSystemCharacteristics
       
    66      * System Characteristics for the applications registered with Location
       
    67      * Centre.
       
    68      *
       
    69      * These characteristics can be combined and used to form a bit-mask
       
    70      * which can then be used while retrieving/displaying registered
       
    71      * applications from Location Centre. 
       
    72      * The system characteristics are defined by Location Centre when an
       
    73      * application registers with it.
       
    74      */
       
    75     enum TLcSystemCharacteristics
       
    76         {
       
    77         /**
       
    78          * This characteristic can be used to retrieve/display all Location
       
    79          * Applications regardless of their System arrtibutes. This
       
    80          * characteristic cannot be combined with any other value.
       
    81          * This will be used as the default System characteristic.
       
    82          */
       
    83         ESysCharNone                                = 0,
       
    84         
       
    85         /**
       
    86          * This characteristic is associated with Location based Applications that
       
    87          * are installed on the ROM.
       
    88          */
       
    89         ESysCharRomBased                            = 1
       
    90         };
       
    91         
       
    92     /**
       
    93      * @enum TLcApplicationCharacteristics
       
    94      * Application Characteristics for the applications registered with 
       
    95      * Location Centre.
       
    96      * 
       
    97      * The application characteristics are defined by the Location based Applications
       
    98      * when they register with Location Centre. A Location Application can
       
    99      * define one or more characteristics when they register. These
       
   100      * characteristics can be combined and used to form a bit-mask which can
       
   101      * then be used while retrieving/displaying registered applications from
       
   102      * Location Centre.
       
   103      */
       
   104      enum TLcApplicationCharacteristics
       
   105         {
       
   106         /**
       
   107          * This characteristics is used for Location based Applications which do
       
   108          * not wish to publish any characteristics. These Location based Applications
       
   109          * would get displayed in Location Centre only when Location Centre is
       
   110          * launched from the application shell or when the user of the Location
       
   111          * Centre API does not specify any other Application characteristics in
       
   112          * filtering. This characteristic cannot be combined with any other value.
       
   113          * This will be used as the default Application characteristic.             
       
   114          */
       
   115         EAppCharNone                                = 0,
       
   116         
       
   117         /**
       
   118          * This characteristic is used for Location based Applications which have
       
   119          * Settings related functionality. These Location based Applications are
       
   120          * used to configure the user's terminal or the remote server for
       
   121          * all Location related features.
       
   122          */
       
   123         EAppCharSettings                            = 1,
       
   124         
       
   125         /**
       
   126          * This characteristic is used for Location based Applications which have
       
   127          * Personal Data Management related functionality. These Location
       
   128          * based Applications enable the user to manage his personal information.
       
   129          */
       
   130         EAppCharPersonalDataManagement              = 2,
       
   131         
       
   132         /**
       
   133          * This characteristic is used for Location based Applications which have
       
   134          * Navigation related functionality. These Location based Applications
       
   135          * help the terminal user to navigate from one location to another.
       
   136          */
       
   137         EAppCharNavigation                          = 4,
       
   138         
       
   139         /**
       
   140          * This characteristic is used for Location based Applications which are
       
   141          * related to Location based events. These Location based Applications are
       
   142          * generally based to trigger certain events based on the terminal's
       
   143          * current Location.
       
   144          */
       
   145         EAppCharLocationBasedEvents                 = 8,
       
   146         
       
   147         /**
       
   148          * This characteristic is used for Location based Applications which have
       
   149          * Remote positioning related functionality. These Location 
       
   150          * based Applications are generally involved in determining the current
       
   151          * location of other terminals or objects.
       
   152          */
       
   153         EAppCharRemotePositioning                   = 16,
       
   154         
       
   155         /**
       
   156          * This characteristic is used for Location based Applications which are
       
   157          * related to Network services. These Location based Applications are
       
   158          * generally involved in the exchange of Location related information
       
   159          * and Location related services over the network.
       
   160          */
       
   161         EAppCharNetworkService                      = 32,
       
   162         
       
   163         /**
       
   164          * This characteristic is used for Location based Applications which are
       
   165          * used to send Location enhanced messages.
       
   166          */
       
   167         EAppCharLocationEnhancedMessages            = 64,
       
   168         
       
   169         /**
       
   170          * This characteristic is used for Location based Applications which
       
   171          * provide Location based content which is stored on the terminal. 
       
   172          */
       
   173         EAppCharOnDeviceLocationBasedContent        = 128,
       
   174     
       
   175         /**
       
   176          * This characteristic is used for Location based Applications which
       
   177          * provide Location based content that is stored remotely and needs
       
   178          * to be accessed from the remote server. These Location based Applications
       
   179          * would need connection to the network to access the Location based
       
   180          * content.
       
   181          */
       
   182         EAppCharRemoteLocationBasedContent          = 256,
       
   183         
       
   184         /**
       
   185          * This characteristic is used for Location based Applications which
       
   186          * position a particular geographic location of a map.
       
   187          */
       
   188         EAppCharMaps                                = 512
       
   189         };
       
   190                 
       
   191     /**
       
   192      * @enum TLcLaunchMode
       
   193      * The mode in which Location Centre needs to launch the application
       
   194      * contained in the Location Application information object.
       
   195      */
       
   196     enum TLcLaunchMode
       
   197         {
       
   198         /**
       
   199          * The corresponding application would be launched in the mode
       
   200          * specified by it during registration with Location Centre.
       
   201          */
       
   202         EDefaultMode                            = 0,
       
   203         
       
   204         /**
       
   205          * The corresponding application would be launched as a stand
       
   206          * alone application.
       
   207          */
       
   208         EStandAloneMode                         = 1,
       
   209         
       
   210          /**
       
   211          * The corresponding application would be launched as a
       
   212          * chained application.
       
   213          */
       
   214         EChainedMode                            = 2           
       
   215         };
       
   216 
       
   217 public: // Exported Functions
       
   218     /**
       
   219      * Constructs a new instance of Location Application information object.
       
   220      *
       
   221      * @return The new instance of Location Application information object.
       
   222      * @leave System wide error code if the object creation fails.
       
   223      */
       
   224     IMPORT_C static CLcLocationAppInfo* NewL();
       
   225     
       
   226     /**
       
   227      * Constructs a new instance of Location Application information object.
       
   228      * Leaves the created instance on the cleanup stack.
       
   229      *
       
   230      * @return The new instance of Location Application information object.
       
   231      * @leave System wide error code if the object creation fails.         
       
   232      */
       
   233     IMPORT_C static CLcLocationAppInfo* NewLC();        
       
   234 
       
   235     /**
       
   236      * Constructs a new instance of Location Application information object.
       
   237      *
       
   238      * @param[in] aLocAppInfo Location Application Information from which the
       
   239      *                        object should be constructed. 
       
   240      * @return The new instance of Location Application information object.
       
   241      * @leave System wide error code if the object creation fails.
       
   242      */
       
   243     IMPORT_C static CLcLocationAppInfo* NewL( 
       
   244                             const CLcLocationAppInfo&  aLocAppInfo );
       
   245     
       
   246     /**
       
   247      * Constructs a new instance of Location Application information object.
       
   248      * Leaves the created instance on the cleanup stack.
       
   249      *
       
   250      * @param[in] aLocAppInfo Location Application Information from which the
       
   251      *                        object should be constructed.         
       
   252      * @return The new instance of Location Application information object.
       
   253      * @leave System wide error code if the object creation fails.         
       
   254      */
       
   255     IMPORT_C static CLcLocationAppInfo* NewLC(
       
   256                             const CLcLocationAppInfo&  aLocAppInfo );    
       
   257 
       
   258     /**
       
   259      * C++ Destructor.
       
   260      * Frees all the resources associated with this Location Application
       
   261      * information object.
       
   262      */
       
   263     virtual ~CLcLocationAppInfo();
       
   264 
       
   265     /**
       
   266      * Gets the Unique identifier identifying the Location Application.
       
   267      * This identifier is defined by the Location Application on registration
       
   268      * with Location Centre.
       
   269      * This is the identifier that must be used by the client of this API for 
       
   270      * any operation on the particular Location Application.
       
   271      * A reference to the object's internal string is returned.     
       
   272      *
       
   273      * @since S60 v5.0     
       
   274      * @return Unique identifier identifying the Location Application. If the
       
   275      *         value of the identifier has not been set then a NULL string
       
   276      *         is returned.
       
   277      */
       
   278     IMPORT_C TPtrC Id() const;
       
   279     
       
   280     /**
       
   281      * Gets the Logical name for the Location Application.
       
   282      * The name is defined by the Location Centre on registration with
       
   283      * Location Centre. This is the name which would be displayed by
       
   284      * Location Centre for this application.
       
   285      * A reference to the object's internal string is returned.
       
   286      *
       
   287      * @since S60 v5.0     
       
   288      * @return Logical name for the Location Application. If the name 
       
   289      *         has not been set for the Location Application, then a NULL
       
   290      *         string is returned.
       
   291      */
       
   292     IMPORT_C TPtrC Name() const;
       
   293       
       
   294     /**
       
   295      * Gets the Icon for the Location Application. 
       
   296      * This is the icon that would be displayed in Location Centre for this
       
   297      * application. If no icon is defined then a default icon would be used.
       
   298      *
       
   299      * The ownership of the icon would be transferred back to the caller
       
   300      * function.
       
   301      *
       
   302      * @since S60 v5.0     
       
   303      * @return - Icon for the Location Application. 
       
   304      *         - NULL, If the Icon has not been set for the Location 
       
   305      *                 based Application
       
   306      * @leave System wide error codes if the icon allocation or copying
       
   307      *        fails.
       
   308      */
       
   309     IMPORT_C CGulIcon* IconL() const;
       
   310 
       
   311     /**
       
   312      * Mode in which the Location Application would be launched. 
       
   313      * If the mode defined is EDefaultMode, then the default mode specified
       
   314      * by the application when registering with Location Centre is used.
       
   315      *
       
   316      * @since S60 v5.0     
       
   317      * @return Mode in which the Location Application would be launched.       
       
   318      */
       
   319     IMPORT_C TLcLaunchMode LaunchMode() const;
       
   320 
       
   321     /**
       
   322      * Returns the System characteristics for the Location Application
       
   323      *
       
   324      * @since S60 v5.0
       
   325      * @return - System Characteristics for the Location
       
   326      *           Application. All the system characteristics for the 
       
   327      *           Location Application would be combined to form an integer
       
   328      *           bit-mask and this function returns the bit-mask. The
       
   329      *           individual System characteristics are defined by
       
   330      *           @ref TLcSystemCharacteristics enumeration.
       
   331      */
       
   332     IMPORT_C TUint32 SystemCharacteristics() const;
       
   333 
       
   334     /**
       
   335      * Returns the Application characteristics for the Location Application
       
   336      *
       
   337      * @since S60 v5.0
       
   338      * @return - Application Characteristics for the Location
       
   339      *           Application. All the application characteristics for the 
       
   340      *           would be combined to form an integer bit-mask and this
       
   341      *           function returns the current bit-mask. The individual
       
   342      *           Application characteristics are defined by
       
   343      *           @ref TLcApplicationCharacteristics enumeration.
       
   344      */
       
   345     IMPORT_C TUint32 ApplicationCharacteristics() const;
       
   346                            
       
   347                                                             
       
   348 public: // Non exported methods
       
   349  
       
   350     /**
       
   351      * @internal
       
   352      * Set the Unique identifier identifying the Location Application. The
       
   353      * identifer is copied.
       
   354      *
       
   355      * @since S60 v5.0     
       
   356      * @param[in] aId Unique identifier identifying the Location Application.
       
   357      * @leave KErrNoMemory If there is not enough memory to copy the string.     
       
   358      * @leave KErrAlreadyExists If the value of the Location applicaton UID
       
   359      *                          has already been set.       
       
   360      */
       
   361     void SetIdL( const TDesC& aId );
       
   362 
       
   363     /**
       
   364      * @internal    
       
   365      * Set the Logical name for the Location Application. The name is 
       
   366      * copied.
       
   367      *
       
   368      * @since S60 v5.0     
       
   369      * @param[in] aName Logical name for the Location Application. 
       
   370      *                  The logical string is copied.
       
   371      * @leave KErrNoMemory If there is not enough memory to copy the string.
       
   372      * @leave KErrAlreadyExists If the value of the Location applicaton name.
       
   373      *                          has already been set.
       
   374      */
       
   375     void SetNameL( const TDesC& aName );
       
   376 
       
   377     /**
       
   378      * @internal    
       
   379      * Set the Icon for the Location Application.
       
   380      *
       
   381      * @since S60 v5.0     
       
   382      * @param[in] aIconType The type of the file which contains the Icon.
       
   383      * @param[in] aIconData Opaque data field which contains the actual data information.
       
   384      * @param[in] aIconId	Id of the Icon in the Icon file.
       
   385      * @leave KErrAlreadyExists If the value of the Location applicaton Icon
       
   386      *                          has already been set.         
       
   387      */	
       
   388 	void SetIconL( 		 TInt		aIconType,
       
   389 				   const TDesC&		aIconData,
       
   390 				   		 TInt		aIconId = 0 );
       
   391     
       
   392     /**
       
   393      * @internal    
       
   394      * Sets the Mode in which the Location Application would be launched.
       
   395      *
       
   396      * @since S60 v5.0     
       
   397      * @param[in] aLaunchMode Mode in which the Location Application would be
       
   398      *                        launched. 
       
   399      */
       
   400     void SetLaunchMode( TLcLaunchMode  aLaunchMode );
       
   401     
       
   402     /**
       
   403      * @internal    
       
   404      * Sets the system characteristics for the Location Application.
       
   405      *
       
   406      * @since S60 v5.0     
       
   407      * @param[in] aSysCharacteristics System Characteristics for the Location
       
   408      *                                Application.
       
   409      */
       
   410     void SetSystemCharacteristics( TUint32   aSysCharacteristics);
       
   411 
       
   412     /**
       
   413      * @internal    
       
   414      * Sets the Application characteristics for the Location Application.
       
   415      *
       
   416      * @since S60 v5.0     
       
   417      * @param[in] aAppCharacteristics Application Characteristics for the Location
       
   418      *                                Application.
       
   419      */
       
   420     void SetApplicationCharacteristics( TUint32   aAppCharacteristics);
       
   421 
       
   422 private:
       
   423     /**
       
   424      * Default C++ Constructor.
       
   425      */
       
   426     CLcLocationAppInfo();
       
   427     
       
   428     /**
       
   429      * Overloaded Copy Constructor.
       
   430      *
       
   431      * @param[in] aLCAppInfo Location Application information object from which
       
   432      * the new object should be constructred.
       
   433      */
       
   434     CLcLocationAppInfo( 
       
   435                 const CLcLocationAppInfo&     aLCAppInfo );
       
   436     
       
   437     /**
       
   438      * Overloaded Assignment operator. By default, prohibit assignment
       
   439      * operator
       
   440      *
       
   441      * @param[in] aLCAppInfo Location Application information object from which 
       
   442      * the new value needs to be assigned.
       
   443      * @return The Location Application information object after assigment.
       
   444      */
       
   445     CLcLocationAppInfo& operator= ( 
       
   446                 const CLcLocationAppInfo&   aLCAppInfo );
       
   447                            
       
   448     /**
       
   449      * Second phase of the two phase constructor.
       
   450      */
       
   451     void ConstructL();
       
   452     
       
   453    /**
       
   454     * Second phase overloaded constructor
       
   455     */
       
   456    void ConstructL( const CLcLocationAppInfo&   aLCAppInfo ); 
       
   457     
       
   458 private: // Data
       
   459     /**
       
   460      * System wide unique identifier identifying the Location Application. This
       
   461      * identifier is defined by the Location Application on registration with
       
   462      * Location Centre.
       
   463      *
       
   464      * Owns
       
   465      */
       
   466     HBufC*                          iId;
       
   467     
       
   468     /**
       
   469      * Application Name.
       
   470      * Logical name for the Location Application. The name is defined by the
       
   471      * Location Centre on registration with Location Centre. This is the name
       
   472      * which would be displayed by Location Centre for this application.
       
   473      * 
       
   474      * Owns
       
   475      */
       
   476     HBufC*                          iApplicationName;
       
   477     
       
   478     /**
       
   479      * Application Icon Data.
       
   480      * Icon for the Location Application. This is the icon that would be displayed
       
   481      * in Location Centre for this application. If no icon is defined then a
       
   482      * default icon would be used.
       
   483      *
       
   484      * Owns
       
   485      */
       
   486     HBufC*                       	iApplicationIconData;
       
   487     
       
   488 	/**
       
   489 	 * Application Icon Type.
       
   490 	 */
       
   491 	TInt							iApplicationIconType;
       
   492 	
       
   493 	/**
       
   494 	 * Application Icon Id.
       
   495 	 */
       
   496 	TInt							iIconId;
       
   497 	
       
   498     /**
       
   499      * Mode in which the Location Application would be launched. If the mode
       
   500      * defined is EDefaultMode, then the default mode specified by the 
       
   501      * application when registering with Location Centre is used.
       
   502      */
       
   503     TLcLaunchMode                   iLaunchMode; 
       
   504      
       
   505    /**
       
   506     * Bit-mask containing the System characteristics for the corresponding
       
   507     * Location application
       
   508     */
       
   509     TUint32                         iSystemCharacteristics;
       
   510     
       
   511    /**
       
   512     * Bit-mask containing the Application characteristics for the corresponding
       
   513     * Location application
       
   514     */
       
   515     TUint32                         iAppCharacteristics;
       
   516           
       
   517     /**
       
   518      * Reserved for future use.
       
   519      */           
       
   520     TAny*                           iReserved;
       
   521     };
       
   522 
       
   523 /**
       
   524  *  @class CLcLocationAppInfoArray
       
   525  *  Array of CLocationAppInfo objects.
       
   526  *
       
   527  *  Place holder for the information about the applications registered with
       
   528  *  Location Centre. The class contains a list of individual Location Application
       
   529  *  information items.
       
   530  *
       
   531  *  @lib lcservice.lib
       
   532  *  @since S60 v5.0
       
   533  */
       
   534 class CLcLocationAppInfoArray : public CBase
       
   535     {
       
   536 public:
       
   537     /**
       
   538      * Constructs a new instance of Location Application information array.
       
   539      *
       
   540      * @return The new instance of Location Application information array.
       
   541      * @leave System wide error code if the object creation fails.         
       
   542      */
       
   543     IMPORT_C static CLcLocationAppInfoArray* NewL();
       
   544     
       
   545     /**
       
   546      * Constructs a new instance of Location Application information array.
       
   547      * Leaves the created instance on the cleanup stack.
       
   548      *
       
   549      * @return The new instance of Location Application information array.
       
   550      * @leave System wide error code if the object creation fails.         
       
   551      */
       
   552     IMPORT_C static CLcLocationAppInfoArray* NewLC();        
       
   553 
       
   554     /**
       
   555      * C++ Destructor.
       
   556      * Frees all the resources associated with this Location Application
       
   557      * information array. This includes all the Location Application
       
   558      * information objects that it owns.
       
   559      */
       
   560     IMPORT_C virtual ~CLcLocationAppInfoArray();
       
   561     
       
   562     /**
       
   563      * Returns the number of Location Application information objects in the
       
   564      * array.
       
   565      *
       
   566      * @since S60 v5.0     
       
   567      * @return The number of objects.      
       
   568      */               
       
   569     IMPORT_C TInt   Count() const;
       
   570     
       
   571     /**
       
   572      * Appends a Location Application information object to the array.
       
   573      * The ownership of the inserted object is transferred.
       
   574      *
       
   575      * @since S60 v5.0      
       
   576      * @param[in] aLCAppInfo Location Application information object which is
       
   577      *                       to be inserted.
       
   578      * @leave System wide error code if the operation fails.      
       
   579      */      
       
   580     IMPORT_C void   AppendL( CLcLocationAppInfo*     aLCAppInfo );
       
   581    
       
   582     /**
       
   583      * Removes a Location Application information object corresponding to the
       
   584      * specified array position from the array.
       
   585      * The function does not delete the object which is removed but transfers
       
   586      * it back to the caller. The ownership of the returned object is also
       
   587      * transferred to the caller.
       
   588      *
       
   589      * @since S60 v5.0      
       
   590      * @param[in] aIndex Index of the requested object in the array. The 
       
   591      *                   position is relative to zero, i.e. zero implies
       
   592      *                   the object pointer at the beginning of the array.
       
   593      * @return Pointer to the requested object.
       
   594      * @panic @ref TLCPanicCodes::ELcArrayOutofBounds, if there is no object
       
   595      *             corresponding to the index.          
       
   596      */
       
   597     IMPORT_C CLcLocationAppInfo* Remove( TInt    aIndex );
       
   598     
       
   599     /**
       
   600      * Resets the Location Application Info Array. It also deletes all the
       
   601      * Location Application Information objects present in the array.
       
   602      *
       
   603      * @since S60 v5.0
       
   604      */
       
   605     IMPORT_C void Reset();
       
   606             
       
   607     /**
       
   608      * Returns a Location Application information object corresponding to the
       
   609      * specified array position.
       
   610      * Only a reference to the internal object is returned, the ownership is 
       
   611      * not transferred.
       
   612      *
       
   613      * @since S60 v5.0      
       
   614      * @param[in] aIndex Index of the requested object in the array. The 
       
   615      *                   position is relative to zero, i.e. zero implies
       
   616      *                   the object pointer at the beginning of the array.
       
   617      * @return Reference to the requested object.
       
   618      * @panic @ref TLcPanicCodes::ELcArrayOutofBounds, if there is no object
       
   619      *             corresponding to the index.      
       
   620      */     
       
   621     IMPORT_C CLcLocationAppInfo& operator[]( TInt aIndex ) const;
       
   622                     
       
   623 private:
       
   624     /**
       
   625      * Default C++ Constructor.
       
   626      */
       
   627     CLcLocationAppInfoArray();
       
   628 
       
   629      /**
       
   630      * Overloaded Copy Constructor. By default, prohibit copy constructor
       
   631      *
       
   632      * @param[in] aLCAppInfoArray Location Application information array from which
       
   633      * the new object should be constructred.
       
   634      */
       
   635     CLcLocationAppInfoArray( 
       
   636                 const CLcLocationAppInfoArray&  aLCAppInfoArray );
       
   637     
       
   638     /**
       
   639      * Overloaded Assignment operator. By default, prohibit assignment
       
   640      * operator
       
   641      *
       
   642      * @param[in] aLCAppInfoArray Location Application information array from which 
       
   643      * the new value needs to be assigned.
       
   644      * @return The Location Application information array after
       
   645      * assigment
       
   646      */
       
   647     CLcLocationAppInfoArray& operator=( 
       
   648                 const CLcLocationAppInfoArray&  aLCAppInfoArray );
       
   649                                        
       
   650     /**
       
   651      * Second phase of the two phase constructor.
       
   652      */
       
   653     void ConstructL();
       
   654 
       
   655 private: // Data   
       
   656     /**
       
   657      * Array of Location Centre application information objects.
       
   658      *
       
   659      * Owns
       
   660      */
       
   661     RPointerArray<CLcLocationAppInfo>     iAppInfoArray;
       
   662     
       
   663     /**
       
   664      * Reserved for future use.
       
   665      */           
       
   666     TAny*                               iReserved;
       
   667     };
       
   668 
       
   669 #endif // C_LCLOCATIONAPPINFO_H