diff -r 000000000000 -r 1bce908db942 natfw/natfwunsaf_protocols/unsaf_codec/src/natfwunsafattributelookuptable.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/natfw/natfwunsaf_protocols/unsaf_codec/src/natfwunsafattributelookuptable.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,194 @@ +/* +* Copyright (c) 2006-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: +* +*/ + + + + +#include "natfwunsafattributelookuptable.h" + +#include "natfwunsafmappedaddressattribute.h" +#include "natfwunsafresponseaddressattribute.h" +#include "natfwunsafchangedaddressattribute.h" +#include "natfwunsafchangerequestattribute.h" +#include "natfwunsafsourceaddressattribute.h" +#include "natfwunsafreflectedfromattribute.h" +#include "natfwunsafmessageintegrityattribute.h" +#include "natfwunsafusernameattribute.h" +#include "natfwunsafpasswordattribute.h" +#include "natfwunsaferrorcodeattribute.h" +#include "natfwunsafunknownattributesattribute.h" +#include "natfwunsafxoronlyattribute.h" +#include "natfwunsafserverattribute.h" +#include "natfwunsafxormappedaddressattribute.h" +#include "natfwunsaffingerprintattribute.h" +// TURN specific attributes +#include "natfwunsafalternateserverattribute.h" +#include "natfwunsafdestinationaddressattribute.h" +#include "natfwunsafremoteaddressattribute.h" +#include "natfwunsaflifetimeattribute.h" +#include "natfwunsafbandwidthattribute.h" +#include "natfwunsafdataattribute.h" +#include "natfwunsafmagiccookieattribute.h" +#include "natfwunsafnonceattribute.h" +#include "natfwunsafrealmattribute.h" +#include "natfwunsafrelayaddressattribute.h" +#include "natfwunsafrequestedportpropsattribute.h" +#include "natfwunsafrequestedtransportattribute.h" +#include "natfwunsafrequestedipattribute.h" +#include "natfwunsaftimervalattribute.h" +#include "natfwunsafconnectstatattribute.h" +// ICE specific attributes +#include "natfwunsafpriorityattribute.h" +#include "natfwunsafusecandidateattribute.h" +#include "natfwunsaficecontrolledattribute.h" +#include "natfwunsaficecontrollingattribute.h" + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::NewL +// ----------------------------------------------------------------------------- +// +CAttributeLookupTable* CAttributeLookupTable::NewL() + { + CAttributeLookupTable* self = new (ELeave) CAttributeLookupTable(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::CAttributeLookupTable +// ----------------------------------------------------------------------------- +// +CAttributeLookupTable::CAttributeLookupTable() + { + } + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::ConstructL +// ----------------------------------------------------------------------------- +// +void CAttributeLookupTable::ConstructL() + { + AddItemL(CNATFWUNSAFAttribute::EMappedAddress, + CNATFWUNSAFMappedAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EResponseAddress, + CNATFWUNSAFResponseAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EChangedAddress, + CNATFWUNSAFChangedAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EChangeRequest, + CNATFWUNSAFChangeRequestAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ESourceAddress, + CNATFWUNSAFSourceAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EReflectedFrom, + CNATFWUNSAFReflectedFromAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EMessageIntegrity, + CNATFWUNSAFMessageIntegrityAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EUsername, + CNATFWUNSAFUsernameAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EPassword, + CNATFWUNSAFPasswordAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EErrorCode, + CNATFWUNSAFErrorCodeAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EUnknownAttributes, + CNATFWUNSAFUnknownAttributesAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EXorOnly, + CNATFWUNSAFXorOnlyAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EServer, + CNATFWUNSAFServerAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EXorMappedAddress, + CNATFWUNSAFXorMappedAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EFingerprint, + CNATFWUNSAFFingerprintAttribute::DecodeAttributeL); + // TURN specific attributes + AddItemL(CNATFWUNSAFAttribute::EAlternateServer, + CNATFWUNSAFAlternateServerAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EDestinationAddress, + CNATFWUNSAFDestinationAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERemoteAddress, + CNATFWUNSAFRemoteAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ELifetime, + CNATFWUNSAFLifetimeAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EBandwidth, + CNATFWUNSAFBandwidthAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EData, + CNATFWUNSAFDataAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EMagicCookie, + CNATFWUNSAFMagicCookieAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ENonce, + CNATFWUNSAFNonceAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERealm, + CNATFWUNSAFRealmAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERelayAddress, + CNATFWUNSAFRelayAddressAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERequestedPortProps, + CNATFWUNSAFRequestedPortPropsAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERequestedTransport, + CNATFWUNSAFRequestedTransportAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ERequestedIp, + CNATFWUNSAFRequestedIpAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::ETimerVal, + CNATFWUNSAFTimerValAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EConnectStat, + CNATFWUNSAFConnectStatAttribute::DecodeAttributeL); + // ICE specific attributes + AddItemL(CNATFWUNSAFAttribute::EPriority, + CNATFWUNSAFPriorityAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EUseCandidate, + CNATFWUNSAFUseCandidateAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EIceControlled, + CNATFWUNSAFIceControlledAttribute::DecodeAttributeL); + AddItemL(CNATFWUNSAFAttribute::EIceControlling, + CNATFWUNSAFIceControllingAttribute::DecodeAttributeL); + } + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::~CAttributeLookupTable +// ----------------------------------------------------------------------------- +// +CAttributeLookupTable::~CAttributeLookupTable() + { + iTable.Close(); + } + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::Find +// ----------------------------------------------------------------------------- +// +TDecodeFnPtr CAttributeLookupTable::Find(TUint16 aAttributeType) + { + for (TInt i = 0; i < iTable.Count(); i++) + { + if (iTable[i].AttributeType() == aAttributeType) + { + return iTable[i].DecodeFunction(); + } + } + + return NULL; + } + +// ----------------------------------------------------------------------------- +// CAttributeLookupTable::AddItemL +// ----------------------------------------------------------------------------- +// +void CAttributeLookupTable::AddItemL(CNATFWUNSAFAttribute::TType aAttributeType, + TDecodeFnPtr aDecodeFn) + { + TAttributeLookupTableItem newItem(aAttributeType, aDecodeFn); + iTable.AppendL(newItem); + }