diff -r 000000000000 -r dd21522fd290 browserutilities/feedsengine/FeedsServer/Client/src/Enclosure.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/feedsengine/FeedsServer/Client/src/Enclosure.cpp Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,177 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: Holds information about a feed encloures. +* +*/ + + +#include "FeedAttributes.h" +#include "FeedsServerFeed.h" +#include "Logger.h" + +// ----------------------------------------------------------------------------- +// CEnclosure::NewL +// +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CEnclosure* CEnclosure::NewL(CFeedsEntity* aFeedsEntity) + { + CEnclosure* self = new (ELeave) CEnclosure(aFeedsEntity); + + CleanupStack::PushL(self); + + self->ConstructL(); + CleanupStack::Pop(); + + return self; + } + +// ----------------------------------------------------------------------------- +// CEnclosure::CEnclosure +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CEnclosure::CEnclosure(CFeedsEntity* aFeedsEntity):iLeakTracker(CLeakTracker::EEnclosure), + iFeedsEntity(aFeedsEntity), iContentType(KNullDesC), + iSize(KNullDesC), iUrl(KNullDesC) + { + } + +// ----------------------------------------------------------------------------- +// CEnclosure::ConstructL +// Symbian 2nd phase constructor can leave. +// ----------------------------------------------------------------------------- +// +void CEnclosure::ConstructL() + { + TPtrC aContentType; + TPtrC aSize; + TPtrC aUrl; + + iFeedsEntity->GetStringValue( EEnclosureAttributeContentType, aContentType); + SetAttribute( EEnclosureAttributeContentType, aContentType); + + iFeedsEntity->GetStringValue( EEnclosureAttributeSize, aSize); + SetAttribute( EEnclosureAttributeSize, aSize); + + iFeedsEntity->GetStringValue( EEnclosureAttributeLink, aUrl); + SetAttribute( EEnclosureAttributeLink, aUrl); + + } + +// ----------------------------------------------------------------------------- +// CEnclosure::~CEnclosure +// Deconstructor. +// ----------------------------------------------------------------------------- +// +CEnclosure::~CEnclosure() + { + } + + +// ----------------------------------------------------------------------------- +// CEnclosure::ContentType +// +// Returns the ContentType. +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CEnclosure::ContentType() const + { + return iContentType; + } + + +// ----------------------------------------------------------------------------- +// CEnclosure::Size +// +// Returns the Size. +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CEnclosure::Size() const + { + return iSize; + } + +// ----------------------------------------------------------------------------- +// CEnclosure::Url +// +// Returns the url. +// ----------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CEnclosure::Url() const + { + return iUrl; + } + + +// ----------------------------------------------------------------------------- +// CEnclosure::SetAttribute +// +// Sets an attribute. +// ----------------------------------------------------------------------------- +// +void CEnclosure::SetAttribute(TUint aAttribute, const TPtrC& aAttributeValue) + { + switch (aAttribute) + { + case EEnclosureAttributeContentType: + iContentType.Set( aAttributeValue); + break; + + case EEnclosureAttributeSize: + iSize.Set( aAttributeValue); + break; + + case EEnclosureAttributeLink: + iUrl.Set( aAttributeValue); + break; + + default: + break; + } + } + + +//#ifdef _DEBUG +// ----------------------------------------------------------------------------- +// CEnclosure::Debug_Print +// +// Prints the item to the log file. +// ----------------------------------------------------------------------------- +// +EXPORT_C void CEnclosure::Debug_Print(void) const + { + FEED_LOG(_L("Feeds"), _L("Feeds_Dump.log"), + EFileLoggingModeAppend, _L("\tItem:")); + + if (iContentType.Length() > 0) + { + FEED_LOG1(_L("Feeds"), _L("Feeds_Dump.log"), + EFileLoggingModeAppend, _L("\t\tTitle: %S"), &iContentType); + } + + if (iSize.Length() > 0) + { + FEED_LOG1(_L("Feeds"), _L("Feeds_Dump.log"), + EFileLoggingModeAppend, _L("\t\tSize: %S"), &iSize); + } + + if (iUrl.Length() > 0) + { + FEED_LOG1(_L("Feeds"), _L("Feeds_Dump.log"), + EFileLoggingModeAppend, _L("\t\tLink: %S"), &iUrl); + } + }