diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/client/src/ncdparentoftransparentnodeproxy.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/provider/client/src/ncdparentoftransparentnodeproxy.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2006 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: Contains CNcdParentOfTransparentNodeProxy class implementation +* +*/ + + +#include "ncdparentoftransparentnodeproxy.h" +#include "catalogsdebug.h" +#include "ncdnodefunctionids.h" +#include "catalogsclientserver.h" + + +// ======== PUBLIC MEMBER FUNCTIONS ======== + +CNcdParentOfTransparentNodeProxy::CNcdParentOfTransparentNodeProxy( MCatalogsClientServer& aSession, + TInt aHandle, + CNcdNodeManagerProxy& aNodeManager, + CNcdOperationManagerProxy& aOperationManager, + CNcdFavoriteManagerProxy& aFavoriteManager ) +: CNcdNodeFolderProxy( aSession, aHandle, aNodeManager, aOperationManager, aFavoriteManager ) + { + } + + +void CNcdParentOfTransparentNodeProxy::ConstructL() + { + CNcdNodeFolderProxy::ConstructL(); + } + + +CNcdParentOfTransparentNodeProxy::~CNcdParentOfTransparentNodeProxy() + { + } + + +TInt CNcdParentOfTransparentNodeProxy::ServerChildCount() const + { + return iServerChildCount; + } + + +void CNcdParentOfTransparentNodeProxy::InternalizeNodeDataL( RReadStream& aStream ) + { + DLTRACEIN(("")); + + // First internalize parent data + CNcdNodeFolderProxy::InternalizeNodeDataL( aStream ); + + // Then get the parent of transparent node specific data + iServerChildCount = aStream.ReadInt32L(); + + DLTRACEOUT(("")); + } + +TBool CNcdParentOfTransparentNodeProxy::IsTransparentChildExpiredL() const + { + DLTRACEIN(("")); + HBufC8* data( NULL ); + + // Because we do not know the exact size of the data id, use + // the alloc method, which creates the buffer of the right size + // and sets the pointer to point to the created buffer. + User::LeaveIfError( + ClientServerSession(). + SendSyncAlloc( NcdNodeFunctionIds::ENcdIsTransparentChildExpired, + KNullDesC8, + data, + Handle(), + 0 ) ); + + if ( data == NULL ) + { + User::Leave( KErrNotFound ); + } + + CleanupStack::PushL( data ); + + // Read the data from the stream + RDesReadStream stream( *data ); + CleanupClosePushL( stream ); + + TBool isTransparentChildExpired = stream.ReadInt32L(); + + // Closes the stream + CleanupStack::PopAndDestroy( &stream ); + CleanupStack::PopAndDestroy( data ); + + return isTransparentChildExpired; + }