diff -r 000000000000 -r 1bce908db942 natplugins/natpnatfwsdpprovider/src/nspsessiondata.cpp --- /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 +#include +#include +#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& 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