ncdengine/provider/client/src/ncdparentoftransparentnodeproxy.cpp
changeset 0 ba25891c3a9e
--- /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;
+    }