diff -r 6385c4c93049 -r 8e6fa1719340 browserui/browser/BrowserAppInc/CommsModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserui/browser/BrowserAppInc/CommsModel.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,113 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Declaration of class MCommsModel. +* +* +*/ + + +#ifndef MCOMMS_MODEL_H +#define MCOMMS_MODEL_H + +// FORWARD DECLARATION + +// class CApListItem; +class CApListItemList; +class CActiveApDb; +class CCommsDatabase; + +// CLASS DECLARATION + +/** +* Observer mixin class for Comms Model changes. +* The main difference between being this observer and MActiveApDbObserver is +* that when an MActiveApDbObserver is notified, the database can be locked +* (so the notification is quite useless). An MCommsModelObserver is notified +* about the change only when the changes are successfully read by +* MCommsModelObserver - that is, in HandleCommsModelChangeL implementation +* you can safely read cached AP-s from CommsModel (and never get KErrLocked). +*/ +class MCommsModelObserver + { + public: // new methods + + /** + * Handle change in comms model (AP-s). Derived classes must provide + * this method. + */ + virtual void HandleCommsModelChangeL() = 0; + + }; + +/** +* Comms model for the WML Browser. +* Provides CommsDb / AP database handling. +*/ +class MCommsModel + { + public: // new methods + + /** + * Get Access Point Engine object. + * @return Access Point Engine object. + */ + virtual CActiveApDb& ApDb() const = 0; + + /** + * Get CommsDb object. + * @return CommsDb object. + */ + virtual CCommsDatabase& CommsDb() const = 0; + + /** + * Get a copy of access points in a list. + * @return List of access points. The caller is responsible for + * destroying the returned list. + * @return List of access points. + */ + virtual CApListItemList* CopyAccessPointsL() = 0; + + /** + * Get the pointer to model's cached access points. + * The owner of the list is the model. List contents may be updated + * if database update occurs. + * @return List of access points. + */ + virtual const CApListItemList* AccessPointsL() = 0; + + /** + * Refresh the cached access points. + */ + virtual void RefreshAccessPointsL() = 0; + + public: // observer support + + /** + * Add an observer. Duplicates allowed. + * @param aObserver The observer to add. + */ + virtual void AddObserverL( MCommsModelObserver& aObserver ) = 0; + + /** + * Remove an observer. Does nothing if not added / already removed. + * @param aObserver The observer to remove. + */ + virtual void RemoveObserver( MCommsModelObserver& aObserver ) = 0; + + }; + +#endif + +// End of file