diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyprotocols/gprsumtsqosprt/inc/iface.h --- a/telephonyprotocols/gprsumtsqosprt/inc/iface.h Mon May 03 13:37:20 2010 +0300 +++ b/telephonyprotocols/gprsumtsqosprt/inc/iface.h Thu May 06 15:10:38 2010 +0100 @@ -1,172 +1,172 @@ -// 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: -// - -#ifndef __GUQOSIFACE_H__ -#define __GUQOSIFACE_H__ - -#include -#include -#include - -class CPdpContext; -class CRequestBase; -class CFlowData; - -enum TNifStatus - { - EUnknown, - EReady, - EPending, - EClosed - }; - -const TUint KMaxEvaluationPrecedences = 256; - -class CModuleGuqos; - -// represents a Nif instance containing PDP contexts (there is one Nif instance per primary Pdp context) -class CNif : public CBase, public MNifEvent - { -public: - static CNif* NewL(CNifIfBase& aInterface, CModuleGuqos& aModule); - ~CNif(); - - TInt NewPdpContext(); - TInt PrimaryContextCreated(const TContextParameters& aParams); - void SecondaryContextCreated(const TContextParameters& aParams); - void DeletePdpContext(CPdpContext* aContext); - - CPdpContext* FindContext(TInt aContextId); - CPdpContext* FindChannel(TInt aChannelId); - - void AddRequest(CRequestBase& aRequest); - - void CancelPendingRequest(CFlowData* aFlowData); - void CancelPendingRequest(CPdpContext* aContext); - TInt FindEvaluationPrecedence(); - void RecomputeEvaluationPrecedences(); - - void CloseRequest(CRequestBase* aRequest); - - TInt Event(CProtocolBase* aProtocol, TUint aName, TDes8& aOption, TAny* aSource=0); - TInt NetworkStatusEvent(const TNetworkParameters& aNetworkEvent); - - inline CPdpContext* PrimaryPdpContext() const; - void IssueRequest(); - inline void RemoveContext(CPdpContext& aContext); - inline CNifIfBase& Interface() const; - inline CModuleGuqos& Module() const; - inline void SetStatus(const TNifStatus& aStatus); - inline const TNifStatus& Status() const; - inline CPdpContext* DefaultPdpContext(); - inline TUint32 IapId() const; - - // Return a reference to initialized context parameters. - TContextParameters& ContextParameters(); -protected: - CNif(CNifIfBase& aInterface, CModuleGuqos& aModule); - void ConstructL(); - TInt RegisterEventHandler(); - TInt SetEvents(TBool aValue); - void SetDefaultQoS(); - -private: - void SelectNewDefaultContext(); - void AddContext(CPdpContext& aContext); - TInt CloseInterface(); - - CNifIfBase& iNif; // CNif always has a valid CNifIfBase - CModuleGuqos& iModule; - - CPdpContext* iPrimary; // Primary PDP context (cannot be deleted while CNif exists) - - TSglQue iContexts; - - TUint32 iIapId; - TSglQueLink iNext; - TNifStatus iStatus; - - TSglQue iPending; - CRequestBase* iCurrentRequest; - TUint32 iPendingSequence; // Temporary hack to detect iPending modifications - - //?? This really should be a bitmap, and not waste even 8 bits where 1 would do... - TUint8 iEvaluationPrecedenceMap[KMaxEvaluationPrecedences]; - - // Every NIF Control call requires use of this LARGE object. Include - // it in here, so that it does not need to be constantly allocated - // from heap or stack! Unfortunately, despite it being a T-class, it - // actually contains C-class pointers and RArrays!!! A major goof - // in specification!!! - TContextParameters iParameters; - - friend class CNifManager; -public: - void RunPendingRequests(); - RTimeout iTimeout; - }; - -typedef TSglQueIter TContextIter; - -// Inline methods -inline CPdpContext* CNif::PrimaryPdpContext() const - { return iPrimary; } - -inline void CNif::RemoveContext(CPdpContext& aContext) - { iContexts.Remove(aContext); } - -//lint -e{1763} would like return to be const (now 'indirectly modifies') -inline CNifIfBase& CNif::Interface() const - { return iNif; } - -inline CModuleGuqos& CNif::Module() const - { return iModule; } - -inline void CNif::SetStatus(const TNifStatus& aStatus) - { iStatus = aStatus; } - -inline const TNifStatus& CNif::Status() const - { return iStatus; } - - -inline CPdpContext* CNif::DefaultPdpContext() - { return iPrimary; } - -inline TUint32 CNif::IapId() const - { return iIapId; }; - - -class CNifManager : public CBase - { -public: - static CNifManager* NewL(); - ~CNifManager(); - - CNif* CreateNifL(CNifIfBase& aInterface, CModuleGuqos& aModule); - void DeleteNif(CNifIfBase* aInterface); - void DeleteNif(CNif* aInterface); - CNif* FindInterface(const CNifIfBase *aIface); - CPdpContext* FindChannel(TInt aChannelId); - void CancelPendingRequests(CFlowData* aFlowData); - -protected: - CNifManager(); - void ConstructL(); - -private: - TSglQue iNifs; - }; - -#endif +// 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: +// + +#ifndef __GUQOSIFACE_H__ +#define __GUQOSIFACE_H__ + +#include +#include +#include + +class CPdpContext; +class CRequestBase; +class CFlowData; + +enum TNifStatus + { + EUnknown, + EReady, + EPending, + EClosed + }; + +const TUint KMaxEvaluationPrecedences = 256; + +class CModuleGuqos; + +// represents a Nif instance containing PDP contexts (there is one Nif instance per primary Pdp context) +class CNif : public CBase, public MNifEvent + { +public: + static CNif* NewL(CNifIfBase& aInterface, CModuleGuqos& aModule); + ~CNif(); + + TInt NewPdpContext(); + TInt PrimaryContextCreated(const TContextParameters& aParams); + void SecondaryContextCreated(const TContextParameters& aParams); + void DeletePdpContext(CPdpContext* aContext); + + CPdpContext* FindContext(TInt aContextId); + CPdpContext* FindChannel(TInt aChannelId); + + void AddRequest(CRequestBase& aRequest); + + void CancelPendingRequest(CFlowData* aFlowData); + void CancelPendingRequest(CPdpContext* aContext); + TInt FindEvaluationPrecedence(); + void RecomputeEvaluationPrecedences(); + + void CloseRequest(CRequestBase* aRequest); + + TInt Event(CProtocolBase* aProtocol, TUint aName, TDes8& aOption, TAny* aSource=0); + TInt NetworkStatusEvent(const TNetworkParameters& aNetworkEvent); + + inline CPdpContext* PrimaryPdpContext() const; + void IssueRequest(); + inline void RemoveContext(CPdpContext& aContext); + inline CNifIfBase& Interface() const; + inline CModuleGuqos& Module() const; + inline void SetStatus(const TNifStatus& aStatus); + inline const TNifStatus& Status() const; + inline CPdpContext* DefaultPdpContext(); + inline TUint32 IapId() const; + + // Return a reference to initialized context parameters. + TContextParameters& ContextParameters(); +protected: + CNif(CNifIfBase& aInterface, CModuleGuqos& aModule); + void ConstructL(); + TInt RegisterEventHandler(); + TInt SetEvents(TBool aValue); + void SetDefaultQoS(); + +private: + void SelectNewDefaultContext(); + void AddContext(CPdpContext& aContext); + TInt CloseInterface(); + + CNifIfBase& iNif; // CNif always has a valid CNifIfBase + CModuleGuqos& iModule; + + CPdpContext* iPrimary; // Primary PDP context (cannot be deleted while CNif exists) + + TSglQue iContexts; + + TUint32 iIapId; + TSglQueLink iNext; + TNifStatus iStatus; + + TSglQue iPending; + CRequestBase* iCurrentRequest; + TUint32 iPendingSequence; // Temporary hack to detect iPending modifications + + //?? This really should be a bitmap, and not waste even 8 bits where 1 would do... + TUint8 iEvaluationPrecedenceMap[KMaxEvaluationPrecedences]; + + // Every NIF Control call requires use of this LARGE object. Include + // it in here, so that it does not need to be constantly allocated + // from heap or stack! Unfortunately, despite it being a T-class, it + // actually contains C-class pointers and RArrays!!! A major goof + // in specification!!! + TContextParameters iParameters; + + friend class CNifManager; +public: + void RunPendingRequests(); + RTimeout iTimeout; + }; + +typedef TSglQueIter TContextIter; + +// Inline methods +inline CPdpContext* CNif::PrimaryPdpContext() const + { return iPrimary; } + +inline void CNif::RemoveContext(CPdpContext& aContext) + { iContexts.Remove(aContext); } + +//lint -e{1763} would like return to be const (now 'indirectly modifies') +inline CNifIfBase& CNif::Interface() const + { return iNif; } + +inline CModuleGuqos& CNif::Module() const + { return iModule; } + +inline void CNif::SetStatus(const TNifStatus& aStatus) + { iStatus = aStatus; } + +inline const TNifStatus& CNif::Status() const + { return iStatus; } + + +inline CPdpContext* CNif::DefaultPdpContext() + { return iPrimary; } + +inline TUint32 CNif::IapId() const + { return iIapId; }; + + +class CNifManager : public CBase + { +public: + static CNifManager* NewL(); + ~CNifManager(); + + CNif* CreateNifL(CNifIfBase& aInterface, CModuleGuqos& aModule); + void DeleteNif(CNifIfBase* aInterface); + void DeleteNif(CNif* aInterface); + CNif* FindInterface(const CNifIfBase *aIface); + CPdpContext* FindChannel(TInt aChannelId); + void CancelPendingRequests(CFlowData* aFlowData); + +protected: + CNifManager(); + void ConstructL(); + +private: + TSglQue iNifs; + }; + +#endif