diff -r 000000000000 -r 63b37f68c1ce adaptationlayer/tsy/nokiatsy_dll/inc/cmmpacketmesshandlercontextlist.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmpacketmesshandlercontextlist.h Fri Nov 06 17:28:23 2009 +0000 @@ -0,0 +1,705 @@ +/* +* 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 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: +* +*/ + + + +#ifndef CMMPACKETCONTEXTMESSHANDLERLIST_H +#define CMMPACKETCONTEXTMESSHANDLERLIST_H + +// INCLUDES +#include +#include +#include "iscapi.h" + +// CONSTANTS +_LIT(KStringExternal, "External"); // First external context +_LIT(KStringExternal2, "External2"); // Second external context + +const TUint8 KTUint8NotDefined = 0xFF; +const TInt KTIntNotDefined = 0xFF; + +// MACROS + // None + +// DATA TYPES + // Context Info List contains TMmContextInfo elements. + class TMmContextInfo + { + public: + TUint8 iContextId; + TUint8 iChannelId; + TUint8 iObjectId; + + TInfoName iContextName; + TInfoName iHostContextName; + + TUint8 iPipeHandle; + TInt iPipeStatus; + + TUint8 iContextType; + + TUint8 iCreateContextIdTransId; + TUint8 iPipeCreateTransId; + TUint8 iGpdsLlConfigureTraId; + TUint8 iRemovePipeTraId; + + TBool iInitialiseStarted; + + TInt iContextConfigurationType; + + RPacketContext::TContextConfigGPRS iConfig; + RPacketContext::TContextConfigR99_R4 iConfig99; + + TUint8 iActivationTraId; + TUint8 iPipeResetTraId; + TUint8 iDeleteTraId; + + TBool iAddDNSAddress; + TBool iAddPCSCFAddress; + + RIscApi iIscApi; + TBool iChannelOpened; + }; + + // Proxy Id List contains TMmProxyIdList elements. + class TMmProxyIdList + { + public: + TUint8 iObjectId; + TUint8 iChannelId; + TBool iIsFree; + }; + +// FUNCTION PROTOTYPES + // None + +// FORWARD DECLARATIONS + // None + +// CLASS DECLARATION +/** +* Contains information list for Packet Context DOS TSY context objects. +* This class provides the methods for the Packet Context Message Handler +* List object (CMmPacketContextList class) to keep track of opened contexts. +* When a Context object is opened it should be put on the Service's Context +* List. +*/ +class CMmPacketContextMesshandlerList : public CBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @return CMmPacketContextMesshandlerList*: pointer to the packet + * context message handler list + */ + static CMmPacketContextMesshandlerList* NewL(); + + /** + * Destructor. + */ + ~CMmPacketContextMesshandlerList(); + + public: // New functions + + /** + * Adds context info to the context info list. + * @param aObjectId: object id + * @param aChannelId: channel id (proxy id) + * @param aContextName: name of the context + * @param aHostContextName: name of the host context + * @return TInt: KErrNone or error code + * (KErrArgument: Maximum number of contexts already + * created or channel id not found from the proxy id list) + */ + TInt AddObject( + const TInt aObjectId, + const TUint8 aChannelId, + const TInfoName& aContextName, + const TInfoName& aHostContextName ); + + /** + * Removes context info from the context info list. + * @param aContextId: context id to find information to be removed. + * @return TInt: KErrNone or error code + * (KErrArgument: Context not in context info list or + * channel id not found from the proxy id list) + */ + TInt RemoveObject( + TUint8 aContextId ); + + /** + * Returns number of created contexts. + * @return TInt: number of created contexts in the context info list + */ + TInt NumberOfContexts() const; + + /** + * Generates new proxy id. + * @param aProxyId: proxy id (channel id) of the context + * @return TInt: KErrNone or error code + * (KErrOverflow: maximum number of context already created) + */ + TInt GenerateProxyId( + TUint8& aProxyId ); + + /** + * Sets context id to the context info list. + * @param aContextId: context id + * @param aTransactionId: transaction id + * @return TInt: KErrNone or error code + (KErrNotFound: context not found from the list) + */ + TInt SetContextId( + const TUint8 aContextId, + const TUint8 aTransactionId ); + + /** + * Gets context type by context name. + * @param aContextName: name of the context + * @return TUint8: context type + */ + TUint8 GetContextTypeByName( + const TInfoName* const aContextName ); + + /** + * Gets context name by context id. + * @param aContextId: context id + * @param aContextName: name of the context + * @return TInt: KErrNone or error code + * (KErrArgument: context not found, invalid context id) + */ + TInt GetContextNameByContextId( + const TUint8 aContextId, + TInfoName& aContextName ); + + /** + * Gets host context name by context name. + * @param aContextName: name of the context + * @return TInfoName: name of the host context + */ + TInfoName GetHostCidName( + TInfoName* aContextName ) const; + + /** + * Gets pipehandle by context name. + * @param aContextName: name of the context + * @return TUint8: pipe handle + * (KInvalidPipeHandle if not found) + */ + TUint8 PipeHandleByContextName( + const TInfoName* aContextName ); + + /** + * Gets proxy id by context name. + * @param aContextName: name of the context + * @return TUint8: proxy id (channel id) + */ + TUint8 ProxyIdByContextName( + const TInfoName* aContextName ); + + /** + * Gets proxyid by pipehandle. + * @param aPipeHandle: pipe handle + * @return TUint8: proxy id (channel id) + */ + TUint8 ProxyIdByPipeHandle( TUint8 aPipeHandle ); + + /** + * Opens channel with the specified id. + * @param aChannelId channel ID + * @return TInt KErrNone or system-wide error code + */ + TInt OpenChannel( TUint8 aChannelId ); + + /** + * Closes channel with the specified id. + * @param aChannelId channel ID + * @return TInt KErrNone or system-wide error code + */ + TInt CloseChannel( TUint8 aChannelId ); + + /* + * Get context name by proxy id. + * @param aProxyId: proxy id (channel id) + * @param aContextName: name of the context + * @return TInt: KErrNone or error code + * (KErrArgument: context not found, invalid proxy id) + */ + TInt ContextNameByProxyId( + const TUint8 aProxyId, + TInfoName& aContextName ); + + /** + * Sets iCreateContextIdTransId of the specified context by context name. + * @param aTransactionId: transaction id + * @param aContextName: name of the context + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetCreateContextIdTransId( + const TUint8 aTransactionId, + const TInfoName* aContextName ); + + /** + * Sets iPipeCreateTransId of the specified context by context name. + * @param aTransactionId: transaction id + * @param aContextName: name of the context + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetPipeCreateTransId( + const TUint8 aTransactionId, + const TInfoName* aContextName ); + + /** + * Sets iGpdsLlConfigureTraId (Local Link) of the specified context + * by context id. + * @param aTransactionId: transaction id + * @param aContextId: context id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetGpdsLlConfigureTraId( + const TUint8 aTransactionId, + const TUint8 aContextId ); + + /** + * Sets the iPipeRemoveTraId specified by pipe handle. + * @param aTransactionId: transaction id + * @param aPipeHandle: pipe handle + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetRemovePipeTraId( + const TUint8 aTransactionId, + const TInt aPipeHandle ); + + /** + * Sets the iActivationTraId specified by context id. + * @param aContextId: context id + * @param aTransactionId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetActivationTraId( + const TUint8 aContextId, + const TUint8 aTransactionId ); + + /** + * Gets and resets transaction used in activation + * @param aContextId: context id + * @return TUint8: activation transaction id + * (KUInt8NotDefined if not found) + */ + TUint8 GetAndResetActivationTraId( + const TUint8 aContextId ); + + /** + * Sets the iDeleteTraId specified by context id. + * @param aContextId: context id + * @param aTransactionId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetDeletionTraId( + const TUint8 aContextId, + const TUint8 aTransactionId ); + + /** + * Gets and resets transaction used in deletion + * @param aContextId: context id + * @return TUint8: delete transaction id + * (KUInt8NotDefined if not found) + */ + TUint8 GetAndResetDeletionTraId( + const TUint8 aContextId ); + + /** + * Sets pipe reset transaction id for specific context by context id. + * @param aContextId: context id + * @param aTransId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetPipeResetTraId( + const TUint8 aContextId, + const TUint8 aTransId ); + + /** + * Checks and resets transaction id used in pipe reset + * @param aTransId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt CheckAndResetPipeResetTraId( + const TUint8 aTransId ); + + /** + * Gets CreateContextId TransActionId of the specified context by + * pipe handle + * @param aPipeHandle: pipe handle + * @return TUint8: create context id transaction id + * (KUInt8NotDefined if not found) + */ + TUint8 CreateContextIdTransIdByPipeHandle( + const TInt aPipeHandle ); + + /** + * Gets CreateContextIdTransId of the specified context by ContextId + * @param aContextId: context id + * @return TUint8: create context id transaction id + * (KUInt8NotDefined if not found) + */ + TUint8 CreateContextIdTraIdByContextId( + const TUint8 aContextId ); + + /** + * Gets Pipehandle of the specified context by context id + * @param aContextId: context id + * @return TUint8: pipe handle + * (KInvalidPipeHandle if not found) + */ + TUint8 PipeHandleByContextId( + const TUint8 aContextId ); + + /** + * Checks if transaction id created early match with given. + * @param aTransId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: if not found) + */ + TInt PipeCreateTransIdOkByTransId( + const TUint8 aTransId ); + + /** + * Checks if transaction id created early match with given. + * @param aTransId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: if not found) + */ + TInt CreateContextIdTraIdOK( + const TUint8 aTransId); + + /** + * Checks if transaction id created early match with given. + * @param aTransId: transaction id + * @return TInt: KErrNone or error code + * (KErrNotFound: if not found) + */ + TInt GpdsLlConfigureTraIdOK( + const TUint8 aTransId ); + + /** + * Sets pipehandle specified by pipe create transaction Id. + * @param aTransactionId: transaction id + * @param aPipeHandle: pipe handle + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetPipeHandle( + const TUint8 aTransactionId, + const TUint8 aPipeHandle ); + + /** + * Gets context Id specified by context name. + * @param aContextName: context name + * @return TUint8: context id + * (GPDS_CID_VOID: context not found) + */ + TUint8 GetContextIdByContextName( + TInfoName* const aContextName ); + + /** + * Reset pipe handle and status by pipehandle. + * @param aPipeHandle: pipe handle + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt ResetPipeHandleAndStatus( + const TUint8 aPipeHandle ); + + /** + * Sets initialisation member for specific context by context Id. + * @param aContextId: context id + * @param aFlag: initialisation member value flag + * @return TBool: ETrue if set, EFalse if context not found + */ + TBool SetInitialiseMember( + const TUint8 aContextId, + const TBool aFlag ); + + /** + * Gets initialisation member for specific context by pipehandle. + * @param aPipeHandle: pipe handle + * @return TBool: initialisation member value + * (EFalse also if context not found) + */ + TBool GetInitialiseMember( + const TInt aPipeHandle ); + + /** + * Gets contextId of the specified context by Pipehandle. + * @param aPipeHandle: pipe handle + * @return TUint8: context id + * (GPDS_CID_VOID: context not found) + */ + TUint8 ContextIdByPipeHandle( + const TInt aPipeHandle ); + + /** + * Reset Context id to GPDS_CID_VOID. + * @param aContextId: context id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt RemoveContextId( + const TUint8 aContextId ); + + /** + * Sets configuration type by contextId. + * @param aContextId: context id + * @param aConfigType: context configuration type + * @return TBool: ETrue if set, EFalse if context not found + */ + TBool SetContextConfigurationType( + const TUint8 aContextId, + const TInt aConfigType ); + + /** + * Gets configuration type by contextId. + * @param aContextId: context id + * @return TInt: context configuration type + */ + TInt GetContextConfigurationType( + const TUint8 aContextId ); + + /** + * Saves configuration for specific context. + * @param aContextId: context id + * @param aConfigurationType: context configuration type + * @param aConfig: TPacketDataConfigBase::KConfigGPRS configuration + * @param aConfig99: TPacketDataConfigBase::KConfigRel99Rel4 configuration + * @return TInt: KErrNone or error code + * (KErrArgument: context not found, invalid context id + * or confguration type not supported) + */ + TInt SaveConfig( + const TUint8 aContextId, + const TInt aConfigurationType, + RPacketContext::TContextConfigGPRS* aConfig, + RPacketContext::TContextConfigR99_R4* aConfig99 ); + + /** + * Get configuration for context by context Id and configuration type. + * @param aContextId: context id + * @param aConfigurationType: context configuration type + * @return TPacketDataConfigBase*: pointer to the configuration + * (TPacketDataConfigBase::KConfigGPRS or + * RPacketContext::TContextConfigR99_R4) + */ + TPacketDataConfigBase* GetConfig( + const TUint8 aContextId, + const TInt aConfigurationType ); + + /** + * Sets pipe status specified by pipe handle. + * @param aPipeHandle: pipe handle + * @param aPipeStatus: pipe status + * @return TBool: ETrue if set, EFalse if context not found + */ + TBool SetPipeStatus( + const TUint8 aPipeHandle, + const TInt aPipeStatus ); + + /** + * Gets pipe status specified by context Id. + * @param aContextId: context id + * @return TInt: pipe status + * (PN_PIPE_DISABLE also if context not found) + */ + TInt GetPipeStatus( + const TUint8 aContextId ); + + /** + * Gets proxy Id specified by context Id. + * @param aContextId: context id + * @return TUint8: proxy id (channel id) + * (GPDS_CID_VOID also if context not found) + */ + TUint8 ProxyIdByContextId( + const TUint8 aContextId ); + + /** + * Sets context Id and name for dial-up context. + * @param aContextId: context id + */ + void SetDialUpContextId( + const TUint8 aContextId ); + + /** + * Gets context Id for dial-up context. + * @return TUint8: dial-up context id + */ + TUint8 GetDialUpContextId(); + + /** + * Gets dial-up context name specified by context Id. + * @param aContextId: context id + * @param aContextName: context name + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt DialUpContextName( + const TUint8 aContextId, + TInfoName& aContextName ); + + /** + * Gets dial-up context id specified by context name. + * @param aContextName: context name + * @return TUint8: context id + * (GPDS_CID_VOID also if context name is invalid) + */ + TUint8 GetDialUpContextIdByName( + TInfoName* const aContextName ); + + /** + * Removes buffered information of the context specified by name. + * @param aContextName: context name + */ + void RemoveObjectByName( + TInfoName* aContextName ); + + /** + * Adds information to specified context about DNS + * @param aContextId: context id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetDNSAddressInfoToContextInfo( + TUint8 aContextId ); + + /** + * Gets information to specified context about DNS + * @param aContextId: context id + * @return TBool: DNS related information value + * (EFalse also if context not found) + */ + TBool GetDNSAddressInfoToContextInfo( + TUint8 aContextId ); + + /** + * Adds information to specified context about PCSCF + * @param aContextId: context id + * @return TInt: KErrNone or error code + * (KErrNotFound: context not found) + */ + TInt SetPCSCFAddressInfoToContextInfo( + TUint8 aContextId ); + + /** + * Gets information to specified context about PCSCF + * @param aContextId: context id + * @return TBool: PCSCF related information value + * (EFalse also if context not found) + */ + TBool GetPCSCFAddressInfoToContextInfo( + TUint8 aContextId ); + + /** + * Gets context Id specified by context list index. + * @param aListIndex: list index + * @return TUint8: context id (GPDS_CID_VOID if context not found) + */ + TUint8 ContextIdByListIndex( const TInt aListIndex ); + + /** + * Gets context type by context id. + * @param aContextId: id of the context + * @return TUint8: context type + */ + TUint8 GetContextTypeById( const TUint8 aContextId ); + + public: // Functions from base classes + // None + + protected: // New functions + // None + + protected: // Functions from base classes + // None + + private: // New functions + + /** + * C++ default constructor. + */ + CMmPacketContextMesshandlerList(); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Initialize used lists and attributes. + */ + void InitAttributesAndLists(); + + public: // Data + // None + + protected: // Data + // None + + private: // Data + + // A context info list. + TMmContextInfo iContextInfoArray[KMmMaxNumberOfContexts]; + + // A proxy id list. + TMmProxyIdList iProxyIdList[KMmMaxNumberOfContexts]; + + // Number of created contexts in context info list. + TInt iNumberOfCreatedContexts; + + // Dial-up context Id + TUint8 iDialUpContextId; + + // Dial-up context Name + TInfoName iDialUpContextName; + + // Secondary Dial-up context Id + TUint8 iSecondaryDialUpContextId; + + // Secondary Dial-up context Name + TInfoName iSecondaryDialUpContextName; + + public: // Friend classes + // None + + protected: // Friend classes + // None + + private: // Friend classes + // None + + }; + +#endif // CMMPACKETCONTEXTLIST_H + +// End of file