diff -r 000000000000 -r af10295192d8 networkcontrol/iptransportlayer/inc/netmcpr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/iptransportlayer/inc/netmcpr.h Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,109 @@ +// Copyright (c) 1997-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: +// + +/** + @file + @internalTechnology + @prototype +*/ + +#ifndef SYMBIAN_NETMCPR_H +#define SYMBIAN_NETMCPR_H + +#define SYMBIAN_NETWORKING_UPS + +#include +#include +#include "netmcprstates.h" +#include "IPMessages.h" + +#include +#include +#include + +#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW +#include +#include +#endif //SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW + +_LIT(KNetMCprPanic, "NetworkMCprPanic"); + +static const TInt KPanicNoActivity = 1; +static const TInt KPanicNoContext = 2; +static const TInt KPanicNoConnectionHandle = 3; +class RParameterFamily; + +namespace NetMCprStates + { + class TProcessPolicyParams; + } + + +// +//CNetworkMetaConnectionProvider +NONSHARABLE_CLASS(CNetworkMetaConnectionProvider) : public CMobilityMetaConnectionProvider + { +friend class NetMCprStates::TProcessPolicyParams; + +public: + static CNetworkMetaConnectionProvider* NewL(ESock::CMetaConnectionProviderFactoryBase& aFactory, + const ESock::TProviderInfo& aProviderInfo); + +protected: + CNetworkMetaConnectionProvider(ESock::CMetaConnectionProviderFactoryBase& aFactory, + const ESock::TProviderInfo& aProviderInfo, + const MeshMachine::TNodeActivityMap& aActivityMap); + void ConstructL(); + + virtual ~CNetworkMetaConnectionProvider(); + virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage); + +private: + TBool FindMatchingPolicyL(TCFIPMessage::TPolicyParams& aPolicyParam); + //void ProcessPolicyParamsL(const ESock::TAddrUpdate& aAddrUpdate, const Messages::TNodeId& aFlowId, const Messages::TNodeId& aSenderSCprId, const Messages::TNodeId& aSenderIPCprId); + void InitDbL(); + + void ProcessPolicyParamsL(const Messages::TRuntimeCtxId& aSender, TCFIPMessage::TPolicyParams& aPolicyParam); + ESock::RCFParameterFamilyBundleC CreateParameterBundleL(TUint aPolicyId); + TInt FillInParamsL(TUint aParamId, RParameterFamily& aFamily); + TInt FillInGenericQosParamsL(TUint aParamId, RParameterFamily& aFamily); + TInt FillInUMTSParamsL(TUint aParamId, RParameterFamily& aFamily); + + // matching helper functions + TBool CheckSrcAddressMatch(const TSockAddr& aFirst, CCDPolicySelectorRecord* aRecord); + TBool CheckDstAddressMatch(const TSockAddr& aFirst, CCDPolicySelectorRecord* aRecord); + TBool CheckProtocol(TUint aProtocolId, CCDPolicySelectorRecord* aRecord); + TBool CheckSrcPort(TUint aPort, CCDPolicySelectorRecord* aRecord); + TBool CheckDstPort(TUint aPort, CCDPolicySelectorRecord* aRecord); + TBool CheckIap(TUint aIapId, CCDPolicySelectorRecord* aRecord); + TBool CheckAppUid(TUid aAppUid, CCDPolicySelectorRecord* aRecord); + +private: + CommsDat::CMDBSession* iDbSession; + CommsDat::CMDBRecordSet* iPolicySelectorRecSet; + }; + +#ifdef SYMBIAN_NETWORKING_UPS + +#define DEFINE_NETMCPR_TRANSITION(class, method) DEFINE_SMELEMENT(class::method, NetStateMachine::MStateTransition, class::TContext) +#define DEFINE_NETMCPR_STATEFORK(class, method) DEFINE_SMELEMENT(class::method, NetStateMachine::MStateFork, class::TContext) +#define DEFINE_NETMCPR_STATE(class, method) DEFINE_SMELEMENT(class::method, NetStateMachine::MState, class::TContext) + +#endif + + +#endif //SYMBIAN_NETMCPR_H + +