diff -r 000000000000 -r 307788aac0a8 sipplugins/sippwlanplugin/inc/sipbearermonitor.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sipplugins/sippwlanplugin/inc/sipbearermonitor.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2005 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: See class definition below. +* +*/ + +#ifndef CSIPBEARERMONITOR_H +#define CSIPBEARERMONITOR_H + +// INCLUDES +#include +#include "sipbearermonitorobserver.h" +#include "sipnetworkobserver.h" + +// FORWARD DECLARATIONS +class MSIPBearerOwner; +class MSIPNetworkInfoObserver; + +/** +* @publishedPartner +* +* Construction parameters for CSIPBearerMonitor are packaged into +* TSIPBearerParams +*/ +class TSIPBearerParams + { + public: + inline TSIPBearerParams( MSIPBearerOwner& aOwner, + TInt aIapId, + TInt aError, + MSIPNetworkInfoObserver& aNetworkInfoObserver ); + + private: + TSIPBearerParams(); + + public: + MSIPBearerOwner& iOwner; + TInt iIapId; + TInt iError; + MSIPNetworkInfoObserver& iNetworkInfoObserver; + }; + +// CLASS DECLARATION +/** +* @publishedPartner +* +* Interface for ECom Bearer Monitor plugins. Implementations must implement the +* abstract functions defined in MSIPBearerMonitorObserver. +*/ +class CSIPBearerMonitor : + public CObject, + public MSIPBearerMonitorObserver + { + public: // Constructors and destructor + + /** + * Destructor. + * Informs ECom framework that this specific instance + * of the interface has been destroyed. + */ + inline ~CSIPBearerMonitor(); + + public: // New methods + + /** + * @return Current bearer monitor state + */ + inline MSIPNetworkObserver::TNetworkState State() const; + + /** + * Inherited monitor may override this to get refresh requests from observer + */ + virtual inline void RefreshL( TInt aError ); + + /** + * Inherited monitor may override this to inform whether monitoring should be + * continued after aError occured + * + * @return Default implementation returns always EFalse + */ + virtual inline TBool ContinueMonitoring( TInt aError ); + + protected: // Constructors + + /** + * Constructor. + * + * @param aParams ECom instantiation parameters, basically + * this is a MSIPBearerOwner*. + */ + inline CSIPBearerMonitor( TAny* aParams ); + + private: // Constructors + + /** + * Default constructor. Not implemented. + */ + CSIPBearerMonitor(); + + public: // Data + + // Unique key for implementations of this interface. + TUid iInstanceKey; + + protected: // Data + + // Reference to our parent + MSIPBearerOwner& iParent; + + // Network state. + MSIPNetworkObserver::TNetworkState iState; + + // IapId which created this monitor, monitor plugins which are shared + // by multiple accesspoints (e.g. gprs monitor) don't really need this + // information + TInt iIapId; + + // Error which caused plugins loading, may be also KErrNone + TInt iError; + + // Observer listening for access network information changes + MSIPNetworkInfoObserver& iNetworkInfoObserver; + }; + +#include "sipbearermonitor.inl" + +#endif // CSIPBEARERMONITOR_H