locationcentre/lcserver/inc/lcregapporder.h
changeset 0 522cd55cc3d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationcentre/lcserver/inc/lcregapporder.h	Tue Feb 02 00:16:03 2010 +0200
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Location Centre Server object.
+*
+*/
+
+
+#ifndef C_LCREGAPPORDER_H
+#define C_LCREGAPPORDER_H
+
+
+// SYSTEM INCLUDES
+#include <e32base.h>
+#include <centralrepository.h>
+#include <s32strm.h>
+
+// USER INCLUDDE
+#include "lcipcparams.h"
+
+// FORWARD DECLARATIONS
+class CLcRegAppStore;
+
+//DATA TYPE
+	
+/**
+ *  Location Centre registered application content/service display order.
+ *
+ *  This class is inherited from CBase. Extracts the registration
+ *  order from the central repository key 
+ *  and externalize/internalize of those from/to TDesC key value.
+ *
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CLcRegAppOrder ) : public CBase
+	{
+public:
+    /**
+     * Constructs a new instance of CLcRegAppOrder.
+     *
+     * @return The new instance of CLcRegAppOrder object.
+     * @leave System wide error code if the object creation fails.         
+     */
+    static CLcRegAppOrder* NewL( CLcRegAppStore& aLcRegAppStore);
+
+    /**
+     * C++ Destructor.
+     * Frees all the resources associated with this Location Centre
+     * server registry handler
+     */
+    ~CLcRegAppOrder();
+    
+public:
+    /**
+     * Extracts the application registered order according to place 
+     * like top,middle,and bottom in the list from central repository key
+     * buffer output.
+     *
+     * @since S60 v5.0
+     * @param [in]aUuid			UUID of the registered app/service
+     * @param [out]aRowPos		returns the position of app/service
+     *
+     * @return TInt  If successfull the return KErrNone.  
+     */
+	TInt GetRegisteredAppOrder( const TDesC& aUuid,
+							    TInt& aRowPos);    
+
+    /**
+     * Remove the deregistered application from the array 
+     * depends upon the UUID's sent through the function.
+     *
+     * @since S60 v5.0
+     * @param aUuid			UUID of the registered app/service
+     *
+     * @return TInt  If successfull the return KErrNone.  
+     */
+	void RemoveArrayL(const TDesC& aUuid);
+
+    /**
+     * Append the registered application to the array 
+     * depends upon the UUID's sent through the function.
+     *
+     * @since S60 v5.0
+     * @param aUuid			UUID of the registered app/service
+     *
+     * @return TInt  Index.  
+     */
+	TInt AppendArrayL(const TDesC& aUuid);
+	
+private: // new private method
+    /**
+     * 
+     *
+     * @since S60 v5.0
+     * @param aArray[ out ]
+     * @param aArray[ in ]
+     *
+     */
+    void ParseCenRepKeyL( RPointerArray< HBufC >&	aArray,
+    				     const TDesC&				aKey );
+    				     
+    /**
+     *
+     * @since S60 v5.0
+     * @param aBuffer
+     *
+     * @return TUint32
+     */
+	TUint32	ParseInteger( const TDesC&	aBuffer ); 				     
+
+private:
+    /**
+     * C++ Default constructor
+     */
+    CLcRegAppOrder( CLcRegAppStore& aLcRegAppStore );
+    
+    /**
+     * Second phase of the two phase constructor
+     */
+    void ConstructL();
+    
+private: //data member
+	//own: Central repository instance.
+	CRepository*				iRepository;
+	
+	//own: array of top portion's UUID's 
+    RPointerArray< HBufC >		iTopArray;
+    
+    //own: array of bottom portion's UUID's 
+    RPointerArray< HBufC >		iBottomArray; 
+    
+    // array of middle portion's UUID's
+    RLcIpcAppIdArray    		iMiddleArray;
+	
+	//reference to appstore object comming through lc registry
+	CLcRegAppStore* 			iLcRegAppStore;
+	};
+
+#endif   // C_LCREGAPPORDER_H
+