realtimenetprots/sipfw/ClientResolver/Resolver/src/CSIPClientData.cpp
author Petteri Saari <petteri.saari@digia.com>
Fri, 26 Nov 2010 12:09:49 +0200
branchMSRP_FrameWork
changeset 59 b365c991829c
parent 0 307788aac0a8
permissions -rw-r--r--
Some comments changed

// 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:
// Name          : CSIPClientData.cpp
// Part of       : SIP Client Resolver
// Version       : 1.0
//



#include "CSIPClientData.h"
#include "CSIPFeatureSet.h"
#include "sdpdocument.h"
#include "sipheaderbase.h"

// -----------------------------------------------------------------------------
// CSIPClientData::NewL
// -----------------------------------------------------------------------------
//
CSIPClientData* CSIPClientData::NewL( const TUid& aImplementationUid,
                                      const TUid& aClientUid,
                                      TBool aRomBased,
		                              TBool aHasDynamicCapabilities )
	{
	CSIPClientData* self = NewLC( aImplementationUid, aClientUid,
	                              aRomBased, aHasDynamicCapabilities);
	CleanupStack::Pop( self );
	return self;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::NewLC
// -----------------------------------------------------------------------------
//
CSIPClientData* CSIPClientData::NewLC( const TUid& aImplementationUid,
                                       const TUid& aClientUid,
                                       TBool aRomBased,
		                               TBool aHasDynamicCapabilities )
	{
	CSIPClientData* self = 
	    new( ELeave ) CSIPClientData( aImplementationUid, aClientUid,
	                                  aRomBased, aHasDynamicCapabilities );
	CleanupStack::PushL( self );
	self->ConstructL();
	return self;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::CSIPClientData
// -----------------------------------------------------------------------------
//
CSIPClientData::CSIPClientData( const TUid& aImplementationUid,
                                const TUid& aClientUid,
                                TBool aRomBased,
                                TBool aHasDynamicCapabilities )
    : iImplementationUid( aImplementationUid ),
      iClientUid( aClientUid ),
      iRomBased( aRomBased ),
      iHasDynamicCapabilities( aHasDynamicCapabilities )
	{
	}

// -----------------------------------------------------------------------------
// CSIPClientData::ConstructL
// -----------------------------------------------------------------------------
//
void CSIPClientData::ConstructL()
	{
	iSdpDocument = CSdpDocument::NewL();
	iSIPFeatureSet = CSIPFeatureSet::NewL();
	}

// -----------------------------------------------------------------------------
// CSIPClientData::~CSIPClientData
// -----------------------------------------------------------------------------
//
CSIPClientData::~CSIPClientData()
	{
	iSIPHeaders.ResetAndDestroy();
	delete iSIPFeatureSet;
	delete iSdpDocument;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::ClientUid
// -----------------------------------------------------------------------------
//
const TUid& CSIPClientData::ClientUid() const
	{
	return iClientUid;
	}
	
// -----------------------------------------------------------------------------
// CSIPClientData::RomBased
// -----------------------------------------------------------------------------
//
TBool CSIPClientData::RomBased() const
	{
	return iRomBased;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::HasDynamicCapabilities
// -----------------------------------------------------------------------------
//	
TBool CSIPClientData::HasDynamicCapabilities() const
    {
    return iHasDynamicCapabilities;
    }

// -----------------------------------------------------------------------------
// CSIPClientData::ImplementationUid
// -----------------------------------------------------------------------------
//    
const TUid& CSIPClientData::ImplementationUid() const
    {
    return iImplementationUid;
    }

// -----------------------------------------------------------------------------
// CSIPClientData::AllowStarting
// -----------------------------------------------------------------------------
//
TBool CSIPClientData::AllowStarting() const
	{
	return iAllowStarting;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::SIPHeaders
// -----------------------------------------------------------------------------
//
RPointerArray< CSIPHeaderBase >& CSIPClientData::SIPHeaders()
	{
	return iSIPHeaders;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::SIPFeatureSet
// -----------------------------------------------------------------------------
//	
CSIPFeatureSet& CSIPClientData::SIPFeatureSet()
    {
    return *iSIPFeatureSet;
    }

// -----------------------------------------------------------------------------
// CSIPClientData::SdpDocument
// -----------------------------------------------------------------------------
//
CSdpDocument& CSIPClientData::SdpDocument()
	{
	return *iSdpDocument;
	}
	
// -----------------------------------------------------------------------------
// CSIPClientData::SetAllowStarting
// -----------------------------------------------------------------------------
//
void CSIPClientData::SetAllowStarting( TBool aAllowStarting )
	{
	iAllowStarting = aAllowStarting;
	}

// -----------------------------------------------------------------------------
// CSIPClientData::AddMediaFieldL
// -----------------------------------------------------------------------------
//
void CSIPClientData::AddMediaFieldL( CSdpMediaField* aMediaField )
	{
    iSdpDocument->MediaFields().AppendL( aMediaField );
	}

// -----------------------------------------------------------------------------
// CSIPClientData::CloneWithoutCapabilitiesLC
// -----------------------------------------------------------------------------
//	
CSIPClientData* CSIPClientData::CloneWithoutCapabilitiesLC()
    {
    return CSIPClientData::NewLC( iImplementationUid, iClientUid, iRomBased,
                                  iHasDynamicCapabilities );
    }