--- /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_