linklayerprotocols/tunnelnif/inc/TunnelAgentHandler.h
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/tunnelnif/inc/TunnelAgentHandler.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,118 @@
+/**
+* Copyright (c) 2006-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:
+* Header file declaring the RawIP Provisioning structures.
+* 
+*
+*/
+
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef TUNNELAGENTHANDLER_H_
+#define TUNNELAGENTHANDLER_H_
+
+#include <comms-infras/agentmessages.h>
+#include <comms-infras/linkmessages.h>
+#include <in_sock.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <comms-infras/nifprvar_internal.h>
+#endif
+
+struct TTunnelInfo;
+
+NONSHARABLE_CLASS(CTunnelAgentHandler) : public CAgentNotificationHandler
+	{
+public:
+	CTunnelAgentHandler(const TTunnelInfo& aTunnelInfo);
+
+private:
+	virtual void ServiceStarted();
+	virtual TInt NotificationFromAgent(TAgentToFlowEventType aEvent, TAny* aInfo);
+
+private:
+	// Pointer to Tunnel provisioning information in AccessPointConfig.  Should remain valid
+	// whilst TunnelMCPr instance is valid - TunnelMCPr has a longer lifetime that this
+	// Tunnel Agent Handler class (which TunnelMCPr created/deletes).
+	const TTunnelInfo& iTunnelInfo;
+	};
+
+class TSigTunnelAddressParams : public Messages::TSignatureBase
+/**
+Parameters that communicate the IP Address that the Tunnel CFProtocol should use.
+
+iIsUpdate is EFalse when the address is setup for the first time.  Address changes are
+signified by iIsUpdate being set to ETrue.  This replaces the old notifications
+EAgentToNifEventTypeSetAddress and EAgentToNifEventTypeUpdateAddress in the old
+Networking architecture.
+*/
+	{
+protected:
+  	inline TSigTunnelAddressParams() {}
+	explicit TSigTunnelAddressParams(const Messages::TNodeSignal::TMessageId& aMessageId,
+			TBool aIsUpdate, TInetAddr aAddress, TInetAddr aNameSer1, TInetAddr aNameSer2)
+		: Messages::TSignatureBase(aMessageId), iIsUpdate(aIsUpdate), iAddress(aAddress),
+		iNameSer1(aNameSer1), iNameSer2(aNameSer2)
+	    {}
+
+public:
+	DECLARE_MVIP_CTR( TSigTunnelAddressParams )
+	DATA_VTABLE
+
+	TInetAddr iAddress;
+	TInetAddr iNameSer1;
+	TInetAddr iNameSer2;
+	TBool	iIsUpdate;
+
+	};
+
+template<TInt id, TInt32 realm>
+struct TTunnelAddressMessage : public TSigTunnelAddressParams, public Messages::TSignatureBase::TTypeToMessageId<id, realm>
+/**
+Template class specialising TCFUmtsIfMessageSig against the operation subid.
+
+@internalComponent
+*/
+    {
+	explicit TTunnelAddressMessage(
+			TBool aIsUpdate, TInetAddr aAddress, TInetAddr aNameSer1, TInetAddr aNameSer2)
+	    :TSigTunnelAddressParams(Messages::TNodeSignal::TMessageId(id, realm),
+	    aIsUpdate, aAddress, aNameSer1, aNameSer2)
+	    {}
+    };
+
+class TTunnelAgentMessage
+    {
+public:
+    enum { ERealmId = 0x10281DF6 };
+
+private:
+    enum
+    	{
+    	ETunnelSetAddress  = Messages::KNullMessageId + 1,
+    	};
+public:
+    typedef TTunnelAddressMessage<ETunnelSetAddress, TTunnelAgentMessage::ERealmId> TTunnelSetAddress;
+
+    static void RegisterL();
+    static void DeRegister();
+	};
+
+
+#endif
+// RAWIPAGENTHANDLER_H_