diff -r 000000000000 -r f5a58ecadc66 servicediscoveryandcontrol/pnp/test/upnp/codec/src/cupnpcodec.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/servicediscoveryandcontrol/pnp/test/upnp/codec/src/cupnpcodec.cpp Tue Feb 02 01:12:20 2010 +0200 @@ -0,0 +1,115 @@ +// Copyright (c) 2008-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: +// upnpcodecmain.cpp +// +// + +#include + +#include "cupnpcodec.h" +#include "cupnpheaderreader.h" +#include "cupnpheaderwriter.h" + + +CUPnPCodec* CUPnPCodec::NewL(TAny* aStringPool) + { + RStringPool* strPool = static_cast(aStringPool); + CUPnPCodec* me = new (ELeave) CUPnPCodec(*strPool); + CleanupStack::PushL(me); + me->ConstructL(); + CleanupStack::Pop(me); + return me; + } + +CUPnPCodec::~CUPnPCodec() + { + // do nothing. + } + +TBool CUPnPCodec::CanEncode(RStringF aHeaderField) const + { + TBool canEncode = EFalse; + + RStringF st = iStringPool.StringF(UPnP::EST, TUPnPTable::Table()); + RStringF usn = iStringPool.StringF(UPnP::EUSN, TUPnPTable::Table()); + RStringF timeout = iStringPool.StringF(UPnP::ETimeout, TUPnPTable::Table()); + RStringF ext = iStringPool.StringF(UPnP::EExt, TUPnPTable::Table()); + RStringF sid = iStringPool.StringF(UPnP::ESID, TUPnPTable::Table()); + RStringF nts = iStringPool.StringF(UPnP::ENTS, TUPnPTable::Table()); + RStringF nt = iStringPool.StringF(UPnP::ENT, TUPnPTable::Table()); + RStringF mx = iStringPool.StringF(UPnP::EMX, TUPnPTable::Table()); + RStringF seq = iStringPool.StringF(UPnP::ESEQ, TUPnPTable::Table()); + RStringF man = iStringPool.StringF(UPnP::EMAN, TUPnPTable::Table()); + RStringF soapaction = iStringPool.StringF(UPnP::ESoapAction, TUPnPTable::Table()); + RStringF callback = iStringPool.StringF(UPnP::ECallback, TUPnPTable::Table()); + + if( + (aHeaderField == st)||(aHeaderField == usn)||(aHeaderField == timeout)||(aHeaderField == ext)|| + (aHeaderField == sid)||(aHeaderField == nts)||(aHeaderField == nt)||(aHeaderField == mx)|| + (aHeaderField == seq)||(aHeaderField == man)||(aHeaderField == soapaction)||(aHeaderField == callback) + ) + { + canEncode = ETrue; + } + + return canEncode; + } + +TBool CUPnPCodec::CanDecode(RStringF aHeaderField) const + { + TBool canDecode = EFalse; + + RStringF st = iStringPool.StringF(UPnP::EST, TUPnPTable::Table()); + RStringF usn = iStringPool.StringF(UPnP::EUSN, TUPnPTable::Table()); + RStringF timeout = iStringPool.StringF(UPnP::ETimeout, TUPnPTable::Table()); + RStringF ext = iStringPool.StringF(UPnP::EExt, TUPnPTable::Table()); + RStringF sid = iStringPool.StringF(UPnP::ESID, TUPnPTable::Table()); + RStringF nts = iStringPool.StringF(UPnP::ENTS, TUPnPTable::Table()); + RStringF nt = iStringPool.StringF(UPnP::ENT, TUPnPTable::Table()); + RStringF mx = iStringPool.StringF(UPnP::EMX, TUPnPTable::Table()); + RStringF seq = iStringPool.StringF(UPnP::ESEQ, TUPnPTable::Table()); + RStringF man = iStringPool.StringF(UPnP::EMAN, TUPnPTable::Table()); + RStringF soapaction = iStringPool.StringF(UPnP::ESoapAction, TUPnPTable::Table()); + RStringF callback = iStringPool.StringF(UPnP::ECallback, TUPnPTable::Table()); + + if( + (aHeaderField == st)||(aHeaderField == usn)||(aHeaderField == timeout)||(aHeaderField == ext)|| + (aHeaderField == sid)||(aHeaderField == nts)||(aHeaderField == nt)||(aHeaderField == mx)|| + (aHeaderField == seq)||(aHeaderField == man)||(aHeaderField == soapaction)||(aHeaderField == callback) + ) + { + canDecode = ETrue; + } + + return canDecode; + } + +CHeaderCodec* CUPnPCodec::FindDelegateCodecL(RStringF /*aHeaderField*/) const + { + return CHeaderCodecPlugin::CreateDelegateCodecL(iStringPool); + } + +CUPnPCodec::CUPnPCodec(RStringPool aStringPool) +:CHeaderCodecPlugin(), iStringPool(aStringPool) + { + // do nothing. + } + +void CUPnPCodec::ConstructL() + { + CHeaderCodec::ConstructL(); + + iWriter = CUPnPHeaderWriter::NewL(iStringPool); + iReader = CUPnPHeaderReader::NewL(iStringPool); + }