/** Copyright (c) 2007 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: **/#ifndef M_NATFWCONNECTIVITYOBSERVER_H#define M_NATFWCONNECTIVITYOBSERVER_H#include <e32base.h>class CNATFWCandidatePair;class CNATFWCandidate;/** * Observer interface for clients to receive events from NATFW. * * @lib natconfw.lib * @since S60 v3.2 */class MNATFWConnectivityObserver {public: /** NAT connectivity framework events. */ enum TNATFWConnectivityEvent { /** Completing event for CreateSessionL. */ ESessionCreated = 0x0001, /** This event is triggered when a new local candidate has been found. Eventdata is an instance of CNATFWCandidate class. Ownership of the candidate is transferred. */ ELocalCandidateFound = 0x0002, /** Completing event for FetchCandidate(s). */ EFetchingCompleted = 0x0004, /** Completing event for SetReceivingStateL. */ EReceivingActivated = 0x0008, /** Completing event for SetReceivingStateL. */ EReceivingDeactivated = 0x0010, /** Completing event for SetSendingStateL. */ ESendingActivated = 0x0020, /** Completing event for SetSendingStateL. */ ESendingDeactivated = 0x0040, /** This event is triggered when a new working ICE candidate pair has been found. Eventdata is an instance of CNATFWCandidatePair class. Ownership of the candidate pair is transferred.*/ ECandidatePairFound = 0x0080, /** Completing event for PerformConnectivityChecksL. */ EConnChecksCompleted = 0x0100, /** This event is triggered when an error within a stream has occured and no asynchnorous operation is ongoing. Error during asynchronous operation is reported by completing that operation with error code.*/ EGeneralError = 0x0200, /** Defines all the supported events. Can only be used for registering and unregistering observers for events.*/ EAllEvents = 0x03ff }; /** * Notifies about NAT connectivity framework events. * * @since S60 v3.2 * @param aSessionId The session identifier * @param aStreamId The stream identifier * @param aEvent The event * @param aError The error code * @param aEventData Optional event data specified by particular event */ virtual void EventOccured( TUint aSessionId, TUint aStreamId, TNATFWConnectivityEvent aEvent, TInt aError, TAny* aEventData ) = 0; };#endif // M_NATFWCONNECTIVITYOBSERVER_H