networkcontrol/iptransportlayer/inc/IPMessages.h
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // IP-proprietary messages
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @internalTechnology
       
    21 */
       
    22 
       
    23 
       
    24 #ifndef SYMBIAN_IPMESSAGES_H
       
    25 #define SYMBIAN_IPMESSAGES_H
       
    26 
       
    27 #include <comms-infras/ss_nodemessages.h>
       
    28 #include <networking/pdpdef.h>
       
    29 #include <commsdattypesv1_1.h>
       
    30 
       
    31 #include <comms-infras/ss_nodemessages_ipmessages.h>
       
    32 #include <addressupdate.h>
       
    33 
       
    34 enum IPCustomActivities
       
    35     {
       
    36     ECFConnPolicyRequestActivity = ESock::ECFActivityCustom,
       
    37 	ECFPolicyConnectionActivity,
       
    38     };
       
    39 
       
    40 NONSHARABLE_CLASS(CIPSubConnParameterFactory) : public CBase
       
    41 	{
       
    42 public:
       
    43 	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
       
    44     enum
       
    45         {
       
    46         EUid = 0x102822D4,
       
    47         };
       
    48 	};
       
    49 
       
    50 NONSHARABLE_STRUCT(TSigPolicyParams) : public Messages::TSignatureBase
       
    51     {
       
    52 protected:
       
    53 	inline TSigPolicyParams() {}
       
    54 	explicit TSigPolicyParams( const Messages::TNodeSignal::TMessageId& aMessageId, ESock::TAddrUpdate aAddrUpdate, Messages::TNodeId aSrcNodeId, Messages::TNodeId aFlowId, TUid aAppSid) :
       
    55 	Messages::TSignatureBase( aMessageId),
       
    56 	iAddrUpdate(aAddrUpdate),
       
    57 	iSrcNodeId(aSrcNodeId),
       
    58 	iFlowId(aFlowId),
       
    59 	iAppSid(aAppSid)
       
    60 	    {}
       
    61 public:
       
    62 	   DECLARE_MVIP_CTR( TSigPolicyParams )
       
    63    	   DATA_VTABLE
       
    64 
       
    65 	ESock::TAddrUpdate 	iAddrUpdate;
       
    66 	Messages::TNodeId 	iSrcNodeId;
       
    67 	Messages::TNodeId 	iFlowId;
       
    68 	TUid			iAppSid;
       
    69     };
       
    70 
       
    71 template<TInt id, TInt32 realm>
       
    72 NONSHARABLE_STRUCT(TCFIPMessageSigPolicyParams) : public TSigPolicyParams, public Messages::TSignatureBase::TTypeToMessageId<id, realm>
       
    73     {
       
    74 	explicit TCFIPMessageSigPolicyParams(ESock::TAddrUpdate aAddrUpdate, Messages::TNodeId aSrcNodeId, Messages::TNodeId aFlowId, TUid aAppSid) :
       
    75 	    TSigPolicyParams(Messages::TNodeSignal::TMessageId(id, realm), aAddrUpdate, aSrcNodeId, aFlowId, aAppSid ){}
       
    76     };
       
    77 
       
    78 NONSHARABLE_STRUCT(TSigQoSWorkingNodeParams) : public Messages::TSignatureBase
       
    79     {
       
    80 protected:
       
    81 	inline TSigQoSWorkingNodeParams() {}
       
    82 	explicit TSigQoSWorkingNodeParams( const Messages::TNodeSignal::TMessageId& aMessageId,
       
    83 								ESock::RCFParameterFamilyBundleC& aParamBundle, Messages::TNodeId aFlowNodeId, Messages::TNodeId aSenderSCPrNodeId, Messages::TNodeId aCPrNodeId) :
       
    84 	Messages::TSignatureBase( aMessageId),
       
    85 	iParamBundle(aParamBundle),
       
    86 	iFlowNodeId(aFlowNodeId),
       
    87 	iSenderSCPrNodeId(aSenderSCPrNodeId),
       
    88  	iCPrNodeId(aCPrNodeId)
       
    89     {}
       
    90 public:
       
    91 	   DECLARE_MVIP_CTR( TSigQoSWorkingNodeParams )
       
    92    	   DATA_VTABLE
       
    93 
       
    94 	ESock::RCFParameterFamilyBundleC iParamBundle;
       
    95 	Messages::TNodeId iFlowNodeId;
       
    96 	Messages::TNodeId iSenderSCPrNodeId;
       
    97 	Messages::TNodeId iCPrNodeId;
       
    98     };
       
    99 
       
   100 template<TInt id, TInt32 realm>
       
   101 NONSHARABLE_STRUCT(TCFIPMessageSigQoSWorkingNodeParams) : public TSigQoSWorkingNodeParams, public Messages::TSignatureBase::TTypeToMessageId<id, realm>
       
   102     {
       
   103 	explicit TCFIPMessageSigQoSWorkingNodeParams(ESock::RCFParameterFamilyBundleC& aParamBundle, Messages::TNodeId aFlowNodeId, Messages::TNodeId aSenderSCPrNodeId, Messages::TNodeId aCPrNodeId ) :
       
   104 	    TSigQoSWorkingNodeParams(Messages::TNodeSignal::TMessageId(id, realm), aParamBundle, aFlowNodeId, aSenderSCPrNodeId, aCPrNodeId){}
       
   105     };
       
   106 
       
   107 //DECLARE_IP_MESSAGE_SIG_2(SigPolicyParams, ESock::TAddrUpdate, AddrUpdate, Messages::TNodeId, FlowId)
       
   108 
       
   109 using namespace ESock;
       
   110 
       
   111 NONSHARABLE_CLASS(TCFIPMessage) : public TCFIPMessages
       
   112 /**
       
   113 IP message realm (messages specific to IP layer)
       
   114 
       
   115 @internalComponent
       
   116 */
       
   117 	{
       
   118   public:
       
   119     enum { ERealmId = 0x102822DA };
       
   120 
       
   121 //  protected:
       
   122   	friend class CIpTierManager;
       
   123 
       
   124   private:
       
   125   	enum
       
   126   	    {
       
   127 		ECFConnPolicyRequest 	= 1,
       
   128 		ECFPolicyRequest		= 2,
       
   129 		ECFPolicyParams			= 3,
       
   130 	    };
       
   131 
       
   132   public:
       
   133 
       
   134 	typedef Messages::TMessageSigNumber<ECFPolicyRequest, TCFIPMessage::ERealmId> TPolicyRequest;
       
   135 	typedef TCFIPMessageSigPolicyParams<ECFPolicyParams, TCFIPMessage::ERealmId> TPolicyParams;
       
   136 
       
   137     static void RegisterL();
       
   138     static void DeRegister();
       
   139 	};
       
   140 /*
       
   141 //
       
   142 //DEBUG
       
   143 
       
   144 #if defined (ESOCK_EXTLOG_ACTIVE)
       
   145 
       
   146 inline const TText8* Messages::TNodeSignal::Printable() const
       
   147 	{
       
   148 	static const TText8* const szMessageId2Name[] =
       
   149 		{
       
   150 		_S8("EConnPolicyRequest"),							//1
       
   151 		_S8("ECFConnPolicyRequest"),	            		//2
       
   152 		_S8("ECFPolicyRequest"),							//3
       
   153 		_S8("ECFPolicyParams"),						//4
       
   154 		};
       
   155 
       
   156 	const TText8* msgName = _S8("UNKNOWN");
       
   157 	TUint n = MessageId().iId;
       
   158 	if (n > sizeof(szMessageId2Name)/sizeof(szMessageId2Name[0]) || MessageId().Realm() != TCFMessage::ERealmId)
       
   159 	    {
       
   160    	    msgName = _S8("ECFCustom");
       
   161 	    }
       
   162 	else if (n>0)
       
   163 	    {
       
   164 	    msgName = szMessageId2Name[n-1];
       
   165 	    }
       
   166 	return msgName;
       
   167 	}
       
   168 
       
   169 inline const TText8* Messages::TNodeSignal::ActivityIdToName() const
       
   170     {
       
   171     switch (ActivityId()&0xFF)
       
   172     	{
       
   173     	case ECFConnPolicyRequestActivity:				return _S8("ECFConnPolicyRequestActivity");
       
   174     	case ECFPolicyConnectionActivity:					return _S8("ECFPolicyConnectionActivity");
       
   175 
       
   176 		default:
       
   177 			return _S8("Activity Unknown");
       
   178     	}
       
   179     }
       
   180 #endif
       
   181 */
       
   182 
       
   183 
       
   184 #endif
       
   185 // SYMBIAN_IPPROTOMESSAGES_H