diff -r 000000000000 -r 79c6a41cd166 contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentcontrolsrv/hscontentinfo/src/hscontentinfo.cpp Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,583 @@ +/* + * Copyright (c) 2008 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: + * + */ + +// System include files +#include + +// User include files +#include "hscontentinfo.h" + +// Local constants + +// ======== MEMBER FUNCTIONS ======== + +// ----------------------------------------------------------------------- +// CHsContentInfo::NewL() +// ----------------------------------------------------------------------- +// +EXPORT_C CHsContentInfo* CHsContentInfo::NewL() + { + CHsContentInfo* self = CHsContentInfo::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::NewL() +// ----------------------------------------------------------------------- +// +EXPORT_C CHsContentInfo* CHsContentInfo::NewL( RReadStream& aStream ) + { + CHsContentInfo* self = new ( ELeave ) CHsContentInfo(); + CleanupStack::PushL( self ); + self->InternalizeL( aStream ); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::NewLC() +// ----------------------------------------------------------------------- +// +EXPORT_C CHsContentInfo* CHsContentInfo::NewLC() + { + CHsContentInfo* self = new ( ELeave ) CHsContentInfo(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::CloneL() +// ----------------------------------------------------------------------- +// +EXPORT_C CHsContentInfo* CHsContentInfo::CloneL() + { + CHsContentInfo* clone = new ( ELeave ) CHsContentInfo(); + CleanupStack::PushL( clone ); + + clone->iName = Name().AllocL(); + clone->iUid = Uid().AllocL(); + clone->iPluginId = PluginId().AllocL(); + clone->iType = Type().AllocL(); + clone->iPublisherId = PublisherId().AllocL(); + clone->iDescription = Description().AllocL(); + clone->iIconPath = IconPath().AllocL(); + clone->iMaxInstance = iMaxInstance; + clone->iCanBeAdded = iCanBeAdded; + clone->iCanBeRemoved = iCanBeRemoved; + clone->iInstallationTime = iInstallationTime; + clone->iPublisherUid = PublisherUid().AllocL(); + clone->iIsWrt = iIsWrt; + + CleanupStack::Pop(); + return clone; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::ConstructL() +// ----------------------------------------------------------------------- +// +void CHsContentInfo::ConstructL() + { + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::CHsContentInfo() +// ----------------------------------------------------------------------- +// +CHsContentInfo::CHsContentInfo() + { + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::~CHsContentInfo() +// ----------------------------------------------------------------------- +// +CHsContentInfo::~CHsContentInfo() + { + delete iName; + delete iUid; + delete iPluginId; + delete iType; + delete iPublisherId; + delete iDescription; + delete iIconPath; + delete iPublisherUid; + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetNameL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetNameL( const TDesC8& aName ) + { + delete iName; + iName = 0; + iName = CnvUtfConverter::ConvertToUnicodeFromUtf8L( aName ); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetNameL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetNameL( const TDesC& aName ) + { + delete iName; + iName = 0; + iName = aName.AllocL(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetPublisherIdL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetPublisherIdL( + const TDesC& aPublisherId ) + { + delete iPublisherId; + iPublisherId = 0; + iPublisherId = aPublisherId.AllocL(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetUidL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetUidL( const TDesC8& aUid ) + { + delete iUid; + iUid = 0; + iUid = aUid.AllocL(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetPluginIdL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetPluginIdL( const TDesC8& aId ) + { + delete iPluginId; + iPluginId = 0; + iPluginId = aId.AllocL(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::SetTypeL +// --------------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetTypeL( const TDesC8& aType ) + { + delete iType; + iType = 0; + iType = aType.AllocL(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::Name +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CHsContentInfo::Name()const + { + return ( iName ) ? *iName : KNullDesC(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::PublisherId +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CHsContentInfo::PublisherId()const + { + return ( iPublisherId ) ? *iPublisherId : KNullDesC(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::Uid +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CHsContentInfo::Uid()const + { + return ( iUid ) ? *iUid : KNullDesC8(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::NameAs8BitLC +// --------------------------------------------------------------------------- +// +EXPORT_C HBufC8* CHsContentInfo::NameAs8BitLC()const + { + HBufC8* ret( CnvUtfConverter::ConvertFromUnicodeToUtf8L( Name() ) ); + CleanupStack::PushL( ret ); + + return ret; + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::PluginId +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CHsContentInfo::PluginId()const + { + return ( iPluginId ) ? *iPluginId : KNullDesC8(); + } + +// --------------------------------------------------------------------------- +// CHsContentInfo::Type +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CHsContentInfo::Type()const + { + return ( iType ) ? *iType : KNullDesC8(); + } + +// ----------------------------------------------------------------------- +// CPublisherInfo::SetMaxWidgets() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetMaxWidgets( TInt aMaxWidget ) + { + iMaxInstance = aMaxWidget; + } + +// ----------------------------------------------------------------------- +// CPublisherInfo::MaxWidgets() +// ----------------------------------------------------------------------- +// +EXPORT_C TInt CHsContentInfo::MaxWidgets() const + { + return iMaxInstance; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::ExternalizeL() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::ExternalizeL( RWriteStream& aStream ) + { + // Keep this externalize routine in-sync with header file's members + + // externalize iName + aStream.WriteInt16L( Name().Size() ); + aStream << Name(); + + // externalize iUid + aStream.WriteInt16L( Uid().Size() ); + aStream << Uid(); + + // externalize iPluginId; + aStream.WriteInt16L( PluginId().Size() ); + aStream << PluginId(); + + // externalize iType; + aStream.WriteInt16L( Type().Size() ); + aStream << Type(); + + // externalize iPublisherId; + aStream.WriteInt16L( PublisherId().Size() ); + aStream << PublisherId(); + + // externalize iDescription; + aStream.WriteInt16L( Description().Size() ); + aStream << Description(); + + // externalize iIconPath; + aStream.WriteInt16L( IconPath().Size() ); + aStream << IconPath(); + + // externalize iMaxInstance + aStream.WriteInt16L( iMaxInstance ); + // externalize iCanBeAdded + aStream.WriteInt16L( iCanBeAdded ); + // externalize iCanBeRemoved + aStream.WriteInt16L( iCanBeRemoved ); + + TInt64 time( iInstallationTime.Int64() ); + + TUint32 low( I64LOW( time ) ); + TUint32 high( I64HIGH( time ) ); + + // externalize iInstallationTime + aStream.WriteUint32L( low ); + aStream.WriteUint32L( high ); + + // externalize iPublisherUid + aStream.WriteInt16L( PublisherUid().Size() ); + aStream << PublisherUid(); + + // externalise iIsWrt + aStream.WriteInt16L( iIsWrt ); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetCanBeAdded() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetCanBeAdded( TBool aValue ) + { + iCanBeAdded = aValue; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::CanBeAdded() +// ----------------------------------------------------------------------- +// +EXPORT_C TBool CHsContentInfo::CanBeAdded() const + { + return iCanBeAdded; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetCanBeRemoved() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetCanBeRemoved( TBool aValue ) + { + iCanBeRemoved = aValue; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::CanBeRemoved() +// ----------------------------------------------------------------------- +// +EXPORT_C TBool CHsContentInfo::CanBeRemoved() const + { + return iCanBeRemoved; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetInstallationTime() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetInstallationTime( TTime& aTime ) + { + iInstallationTime = aTime; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::InstallationTime() +// ----------------------------------------------------------------------- +// +EXPORT_C TTime CHsContentInfo::InstallationTime() const + { + return iInstallationTime; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetDescriptionL() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetDescriptionL( const TDesC& aDescription ) + { + delete iDescription; + iDescription = NULL; + + iDescription = aDescription.AllocL(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::Description() +// ----------------------------------------------------------------------- +// +EXPORT_C const TDesC& CHsContentInfo::Description() const + { + return ( iDescription ) ? *iDescription : KNullDesC(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetIconPathL() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetIconPathL( const TDesC& aIconPath ) + { + delete iIconPath; + iIconPath = NULL; + + iIconPath = aIconPath.AllocL(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::IconPath() +// ----------------------------------------------------------------------- +// +EXPORT_C const TDesC& CHsContentInfo::IconPath() const + { + return ( iIconPath ) ? *iIconPath : KNullDesC(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::InternalizeL() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::InternalizeL( RReadStream& aStream ) + { + TInt length( 0 ); + + // internalize iName + length = aStream.ReadInt16L(); + delete iName; + iName = NULL; + iName = HBufC::NewL( aStream, length ); + + // internalize iUid + length = aStream.ReadInt16L(); + delete iUid; + iUid = NULL; + iUid = HBufC8::NewL( aStream, length ); + + // internalize iPluginId + length = aStream.ReadInt16L(); + delete iPluginId; + iPluginId = NULL; + iPluginId = HBufC8::NewL( aStream, length ); + + // internalize iType + length = aStream.ReadInt16L(); + delete iType; + iType = NULL; + iType = HBufC8::NewL( aStream, length ); + + // internalize iPlublisherId; + length = aStream.ReadInt16L(); + delete iPublisherId; + iPublisherId = NULL; + iPublisherId = HBufC16::NewL( aStream, length ); + + // internalize iDescription; + length = aStream.ReadInt16L(); + delete iDescription; + iDescription = NULL; + iDescription = HBufC16::NewL( aStream, length ); + + // internalize iIconPath; + length = aStream.ReadInt16L(); + delete iIconPath; + iIconPath = NULL; + iIconPath = HBufC16::NewL( aStream, length ); + + // internalize iMaxInstance + iMaxInstance = aStream.ReadInt16L(); + // internalize iCanBeAdded + iCanBeAdded = aStream.ReadInt16L(); + // internalize iCanBeRemoved + iCanBeRemoved = aStream.ReadInt16L(); + + TUint32 low( aStream.ReadUint32L() ); + TUint32 high( aStream.ReadUint32L() ); + + iInstallationTime = TTime( MAKE_TINT64( high, low ) ); + + // internalize iPublisherUid + length = aStream.ReadInt16L(); + delete iPublisherUid; + iPublisherUid = NULL; + iPublisherUid = HBufC8::NewL( aStream, length ); + + // internalize iIsWrt + iIsWrt = aStream.ReadInt16L(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::Size() +// ----------------------------------------------------------------------- +// +EXPORT_C TInt CHsContentInfo::Size( ) + { + TInt size( 0 ); + size = size + Name().Size(); // name + size = size + Uid().Size(); // uid + size = size + PluginId().Size(); // plugin id + size = size + Type().Size(); // type + size = size + PublisherId().Size(); // publisher id + size = size + Description().Size(); // description + size = size + IconPath().Size(); // icon path + size = size + sizeof( TInt16 ); // max instance + size = size + sizeof( TInt16 ); // can be added + size = size + sizeof( TInt16 ); // can be removed + size = size + sizeof( TUint32 ); // installation time low + size = size + sizeof( TUint32 ); // installation time high + size = size + PublisherUid().Size();// publisher uid + size = size + sizeof( TInt16 ); // is wrt + + return size; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetPublisherUidL() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetPublisherUidL( + const TDesC8& aPublisherUid ) + { + delete iPublisherUid; + iPublisherUid = 0; + iPublisherUid = aPublisherUid.AllocL(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::PublisherUid() +// ----------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CHsContentInfo::PublisherUid() const + { + return ( iPublisherUid ) ? *iPublisherUid : KNullDesC8(); + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::SetIsWrt() +// ----------------------------------------------------------------------- +// +EXPORT_C void CHsContentInfo::SetIsWrt( TBool aIsWrt ) + { + iIsWrt = aIsWrt; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::IsWrt() +// ----------------------------------------------------------------------- +// +EXPORT_C TBool CHsContentInfo::IsWrt() const + { + return iIsWrt; + } + +// ----------------------------------------------------------------------- +// CHsContentInfo::MarshalL() +// ----------------------------------------------------------------------- +// +EXPORT_C HBufC8* CHsContentInfo::MarshalL( ) + { + + // Externalize message + CBufFlat* reqBuf = CBufFlat::NewL( Size() ); + CleanupStack::PushL( reqBuf ); + RBufWriteStream reqStream( *reqBuf ); + CleanupClosePushL( reqStream ); + ExternalizeL( reqStream ); + CleanupStack::PopAndDestroy( &reqStream ); + + // Append externalized messgae to a descriptor + HBufC8* msgDesc = HBufC8::NewL( reqBuf->Size() ); + TPtr8 msgPtr( NULL, 0 ); + msgPtr.Set( msgDesc->Des() ); + reqBuf->Read( 0, msgPtr, reqBuf->Size() ); + CleanupStack::PopAndDestroy( reqBuf ); + + return msgDesc; + + } + +// End of file