--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/natplugins/natpnatfwsdpprovider/src/nspsessiondata.cpp Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,300 @@
+/*
+* 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: Session Sdp related storage, class implementation.
+*
+*/
+
+#include <sdpdocument.h>
+#include <sdpconnectionfield.h>
+#include <sdpmediafield.h>
+#include "natfwcandidate.h"
+#include "natfwcandidatepair.h"
+#include "natfwcredentials.h"
+#include "nspsessiondata.h"
+#include "nspmediastream.h"
+#include "nspmediastreamcomponent.h"
+#include "nspcontentparser.h"
+#include "nspcontrollerif.h"
+#include "nspdefs.h"
+
+// ======== MEMBER FUNCTIONS ========
+// ---------------------------------------------------------------------------
+// CNSPSessionData::CNSPSessionData
+// ---------------------------------------------------------------------------
+//
+CNSPSessionData::CNSPSessionData()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::ConstructL()
+ {
+ iCredentials = CNATFWCredentials::NewL();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::NewL
+// ---------------------------------------------------------------------------
+//
+CNSPSessionData* CNSPSessionData::NewL()
+ {
+ CNSPSessionData* self = CNSPSessionData::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::NewLC
+// ---------------------------------------------------------------------------
+//
+CNSPSessionData* CNSPSessionData::NewLC()
+ {
+ CNSPSessionData* self = new ( ELeave ) CNSPSessionData();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::~CNSPSessionData
+// ---------------------------------------------------------------------------
+//
+CNSPSessionData::~CNSPSessionData()
+ {
+ delete iOffer;
+ delete iAnswer;
+ delete iCredentials;
+ delete iUpdatedSdp;
+ iRemoteCandidates.ResetAndDestroy();
+ iRemoteCandidates.Close();
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetOffer
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetOffer( CSdpDocument* aOffer )
+ {
+ if ( iOffer != aOffer )
+ {
+ delete iOffer;
+ iOffer = aOffer;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::Offer
+// ---------------------------------------------------------------------------
+//
+CSdpDocument& CNSPSessionData::Offer()
+ {
+ return (*iOffer);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::ReleaseOffer
+// ---------------------------------------------------------------------------
+//
+CSdpDocument* CNSPSessionData::ReleaseOffer()
+ {
+ CSdpDocument* offer = iOffer;
+ iOffer = NULL;
+ return offer;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetAnswer
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetAnswer( CSdpDocument* aAnswer )
+ {
+ if ( iAnswer != aAnswer )
+ {
+ delete iAnswer;
+ iAnswer = aAnswer;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::Answer
+// ---------------------------------------------------------------------------
+//
+CSdpDocument& CNSPSessionData::Answer()
+ {
+ return (*iAnswer);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::ReleaseAnswer
+// ---------------------------------------------------------------------------
+//
+CSdpDocument* CNSPSessionData::ReleaseAnswer()
+ {
+ CSdpDocument* answer = iAnswer;
+ iAnswer = NULL;
+ return answer;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetRole
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetRole( TNATFWIceRole aRole )
+ {
+ iRole = aRole;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::OperationMode
+// ---------------------------------------------------------------------------
+//
+TNATFWIceRole CNSPSessionData::Role() const
+ {
+ return iRole;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetUseIce
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetUseIce( TBool aUseIce )
+ {
+ iUseIce = aUseIce;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::UseIce
+// ---------------------------------------------------------------------------
+//
+TBool CNSPSessionData::UseIce() const
+ {
+ return iUseIce;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetSubState
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetSubState( CNSPSessionData::TSubState aSubState )
+ {
+ switch ( aSubState )
+ {
+ case CNSPSessionData::ESubMismatch:
+ {
+ iSubState = ( iSubState == CNSPSessionData::ESubRemoteLite ) ?
+ ESubAll :
+ aSubState;
+ break;
+ }
+ case CNSPSessionData::ESubRemoteLite:
+ {
+ iSubState = ( iSubState == CNSPSessionData::ESubMismatch ) ?
+ ESubAll :
+ aSubState;
+ break;
+ }
+ default:
+ {
+ iSubState = aSubState;
+ break;
+ }
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SubState
+// ---------------------------------------------------------------------------
+//
+CNSPSessionData::TSubState CNSPSessionData::SubState() const
+ {
+ return iSubState;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::RemoteCandidates
+// ---------------------------------------------------------------------------
+//
+RPointerArray<CNATFWCandidate>& CNSPSessionData::RemoteCandidates()
+ {
+ return iRemoteCandidates;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::Credentials
+// ---------------------------------------------------------------------------
+//
+CNATFWCredentials& CNSPSessionData::Credentials()
+ {
+ return (*iCredentials);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::UpdatedSdp
+// ---------------------------------------------------------------------------
+//
+CSdpDocument& CNSPSessionData::UpdatedSdp()
+ {
+ return (*iUpdatedSdp);
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::SetUpdatedSdp
+// ---------------------------------------------------------------------------
+//
+void CNSPSessionData::SetUpdatedSdp( CSdpDocument* aDocument )
+ {
+ if ( iUpdatedSdp != aDocument )
+ {
+ delete iUpdatedSdp;
+ iUpdatedSdp = aDocument;
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CNSPSessionData::ReleaseUpdatedSdp
+// ---------------------------------------------------------------------------
+//
+CSdpDocument* CNSPSessionData::ReleaseUpdatedSdp()
+ {
+ CSdpDocument* update = iUpdatedSdp;
+ iUpdatedSdp = NULL;
+ return update;
+ }
+
+
+// end of file