diff -r 5b6f26637ad3 -r f4a778e096c2 phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSatRefreshNotifier.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines/VirtualPhonebook/VPbkSimStoreImpl/inc/CSatRefreshNotifier.h Wed Sep 01 12:29:52 2010 +0100 @@ -0,0 +1,114 @@ +/* +* Copyright (c) 2002-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: A notifier that gets refresh events from the SAT server +* +*/ + + + +#ifndef VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H +#define VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H + +// INCLUDES +#include +#include +#include "MSimRefreshObject.h" + +namespace VPbkSimStoreImpl { + +// FORWARD DECLARATIONS + +// CLASS DECLARATION + +/** +* A notifier that gets refresh events from the SAT server +* +*/ +NONSHARABLE_CLASS(CSatRefreshNotifier) : public CBase, + private MSatRefreshObserver, + private MSimRefreshCompletion + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CSatRefreshNotifier* NewL(); + + /** + * Destructor. + */ + virtual ~CSatRefreshNotifier(); + + public: // New functions + + /** + * Opens session to SAT server and activates notification + * if refresh object has files that are not already listened to. + * + * @param aSimRefreshObject the object that needs to listen to refresh. + */ + void ActivateL( MSimRefreshObject& aSimRefreshObject ); + + /** + * Deactivates listening refresh. + * + * @param aSimRefreshObject the object that doesn't need + * notification anymore. + */ + void DeActivate( MSimRefreshObject& aSimRefreshObject ); + + /** + * Returns ETrue if notifier has been activated + * @return ETrue if notifier has been activated + */ + TBool IsActive(); + + private: // From MSatRefreshObserver + + TBool AllowRefresh( TSatRefreshType aType, + const TSatRefreshFiles& aFiles ); + void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); + + private: // From MSimRefreshCompletion + void SatRefreshCompleted( MSimRefreshObject& aSimRefreshObject, + TBool aReadAdditionalFiles ); + + private: + + /** + * C++ default constructor. + */ + CSatRefreshNotifier(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + /// Own: a C-class that owns SAT session + class CSatSession; + CSatSession* iSatSession; + /// An array of observers. Instances are not owned. + RPointerArray iObjects; + /// The number of object that have completed refresh + TInt iRefreshedObjects; + /// ETrue if some object has read other than SAT-defined EFs. + TBool iAdditionalEFsRead; + }; +} // namespace VPbkSimStoreImpl +#endif // VPBKSIMSTOREIMPL_CSATREFRESHNOTIFIER_H + +// End of File