diff -r dd3853b8dc3f -r 1e1cc61f56c3 realtimenetprots/sipfw/ProfileAgent/ApnManager/inc/sipapnmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/ProfileAgent/ApnManager/inc/sipapnmanager.h Fri Mar 12 15:44:11 2010 +0200 @@ -0,0 +1,101 @@ +// Copyright (c) 2007-2009 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: +// Name : sipapnmanager.h +// Part of : SIP Profile Server +// implementation +// Version : 1.0 +// + + +#ifndef CSIPAPNMANAGER_H +#define CSIPAPNMANAGER_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CSIPApnConfigurationHandler; + +// OBSERVER +class MSIPApnChangeObserver + { +public: + /** + * Called when apn change completed successfully or failed so fatally + * that there's no change expected any further on that IAPId. + */ + virtual void ApnChanged( const TDesC8& aApn, TUint32 aIapId, TInt aError ) = 0; + }; + +// CLASS DEFINITION +/** + * + */ +class CSIPApnManager : public CBase + { + public: // Constructors and destructor + + static CSIPApnManager* NewL( MSIPApnChangeObserver& aObserver ); + + ~CSIPApnManager(); + + public: // New methods + + // Update the cached primary or secondary APN + void UpdateApnL( TUint32 aIapId, TBool aIsPrimaryApn, const TDesC8& aApn ); + + TBool IsFailed( TUint32 aIapId ); + void SetFailed( TUint32 aIapId ,TBool aIsFailed, TBool aIsFatalFailure ); + + TBool IsPrimaryApnInUse( TUint32 aIapId ); + + void WriteApnL( TUint32 aIapId, TBool aIsPrimaryApn, const TDesC8* aApn ); + + TBool HasPendingTasks() const; + + /* + * Checks whether the IAPId is ModemBearer + */ + TBool IsIapGPRSL( TUint32 aIapId ); + + private: // Constructors + + CSIPApnManager( MSIPApnChangeObserver& aObserver ); + + void ConstructL(); + + private: + + CSIPApnConfigurationHandler* FindIapIdHandler( TUint32 aIapId ); + + void SetApnL( const TDesC8& aApn, + TBool aUseSecureAuthentication, + TBool aAllowAsync, + TUint32 aIapId); + + void CreateHandlerL( TUint32 aIapId ); + + private: // Data + + MSIPApnChangeObserver& iObserver; + RPointerArray iHandlers; + TBool iInitialApnChangeFailed; + +#ifdef CPPUNIT_TEST + friend class CSIPApnManagerTest; +#endif + + }; + +#endif // CSIPAPNMANAGER_H