diff -r 1fc85118c3ae -r 870918037e16 landmarksui/uicontrols/inc/clmkcentralrepository.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/landmarksui/uicontrols/inc/clmkcentralrepository.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,172 @@ +/* +* Copyright (c) 2006 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: LandmarksUi Content File - This class listens to the changes in the Central Repository +* for specific keys and notifies the observer. +* +*/ + + + + + + + +#ifndef __CLMKCENTRALREPOSITORY_H__ +#define __CLMKCENTRALREPOSITORY_H__ + +// System Includes +#include + +// User Includes +#include "mlmkcentralrepositoryobserver.h" + +// Forward Declarations +class CRepository; + +// Constant Declarations + +// Class Definition +/** + * This class listens to the change in value of specified key, in the central repository. + * When there is any change, it notifies to the observer. + * This class can also be used, without notification, just to get key values from + * central repository. + * To make it start listening on a specific key value change, create an instance of + * this class using the argumented NewL/NewLC functions. + * A request can only be cancelled, when the object of this class + * is deleted. + */ +NONSHARABLE_CLASS( CLmkCentralRepository ) : public CActive + { + public: + /** + * Creates new central repository listener + * + * @return CLmkCentralRepository* Pointer to self + */ + static CLmkCentralRepository* NewL(); + + + /** + * Creates new central repository listener + * Leaves the object on the Clean up stack + * + * @return CLmkCentralRepository* Pointer to self + */ + static CLmkCentralRepository* NewLC(); + + /** + * Creates new central repository listener + * + * @param aKey Key, on which change is being listened. + * @param aObserver Observer, which will be called when + * there is any change in the specified key + * value. + * @return CLmkCentralRepository* Pointer to self + */ + static CLmkCentralRepository* NewL( TUint32 aKey , + MLmkCentralRepositoryObserver* aObserver); + + + /** + * Creates new central repository listener + * Leaves the object on the Clean up stack + * + * @param aKey Key, on which change is being listened. + * @param aObserver Observer, which will be called when + * there is any change in the specified key + * value. + * @return CLmkCentralRepository* Pointer to self + */ + static CLmkCentralRepository* NewLC( TUint32 aKey , + MLmkCentralRepositoryObserver* aObserver); + + + /** + * Destructor + */ + ~CLmkCentralRepository (); + + public: + + /** + * Start notification from the Central repository server for any changes in the + * in the specified key value. + * + * @panic Panics with code KLmkPanicNullMember, when no observer + * is set. + * Panics with code KLmkKeyNotSet, when no key is set. + * + * @return TInt KErrNone if successful, KErrAlreadyExists if there is already + * a notification from this CRepository on this setting, or an + * error from IPC or server side resource allocation failure. + */ + TInt StartNotification(); + + /** + * Gets the value for the specified key, from central repository. + * @param aKey Key for which, value is being fetched. + * @param[out]aValue Fetched value from central repository. + */ + TInt GetKeyValue(TUint32 aKey, TInt& aValue); + + protected: + /** + * Inherited from CActive + */ + void RunL(); + + /** + * Inherited from CActive + */ + void DoCancel(); + + private: + /** + * Constructor + */ + CLmkCentralRepository( TUint32 aKey , + MLmkCentralRepositoryObserver* aObserver); + + /** + * Second Phase Constructor + */ + void ConstructL(); + /** + * Second Phase Constructor + */ + void Construct2L(); + + + private: + + /** + * Key, which is being observed for any change, in its value. + */ + const TUint32 iKey; + /** + * Reference to the Settings observer + */ + MLmkCentralRepositoryObserver* iObserver; + + /** + * Reference to the Central repository object + * + * Owns + */ + CRepository* iRepository; + }; + + +#endif //__CLMKCENTRALREPOSITORY_H__ \ No newline at end of file