ncdengine/provider/client/inc/ncdparentoftransparentnodeproxy.h
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/client/inc/ncdparentoftransparentnodeproxy.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,105 @@
+/*
+* 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
+*
+*/
+
+
+#ifndef NCD_PARENT_OF_TRANSPARENT_NODE_PROXY_H
+#define NCD_PARENT_OF_TRANSPARENT_NODE_PROXY_H
+
+
+#include "ncdnodefolderproxy.h"
+
+
+/**
+ *  Parent of transparent classes.
+ *  Because of children of this class object may be transparent, it means
+ *  that the child count of the server side object may not match the child count
+ *  of the proxy when transparent children are replaced by their children.
+ *  This class object provides the actual server side child count. That may be
+ *  used for special cases.
+ *
+ *  @lib ?library
+ *  @since S60 ?S60_version *** for example, S60 v3.0
+ */
+class CNcdParentOfTransparentNodeProxy: public CNcdNodeFolderProxy 
+    {
+
+public:
+
+    /**
+     * Destructor
+     *
+     * @note Usually Release function should be used instead of
+     * directly calling delete for this class object.
+     *
+     */
+    virtual ~CNcdParentOfTransparentNodeProxy();
+
+
+    /**
+     * @return TInt The child count that the corresponding server side object has.
+     */
+    TInt ServerChildCount() const;
+
+
+protected: // CNcdNodeFolderProxy
+
+    /**
+     * @see CNcdNodeFolderProxy::InternalizeNodeDataL
+     */
+    virtual void InternalizeNodeDataL( RReadStream& aStream );
+
+
+protected:
+
+    /**
+     * @see CNcdNodeFolderProxy::ConstructL
+     */
+    CNcdParentOfTransparentNodeProxy( MCatalogsClientServer& aSession,
+                                      TInt aHandle,
+                                      CNcdNodeManagerProxy& aNodeManager,
+                                      CNcdOperationManagerProxy& aOperationManager,
+                                      CNcdFavoriteManagerProxy& aFavoriteManager );
+
+    /**
+     * ConstructL
+     */
+    virtual void ConstructL();
+    
+    /**
+     * Checks from server side that is any of the transparent children expired.
+     * (Needs to be checked from server side because the transparent child folders do
+     * not exist on proxy side)
+     *
+     * @return ETrue if one or more of the transp. children is expired.
+     */
+    TBool IsTransparentChildExpiredL() const;
+
+
+private:
+    // Prevent if not implemented
+    CNcdParentOfTransparentNodeProxy( const CNcdParentOfTransparentNodeProxy& aObject );
+    CNcdParentOfTransparentNodeProxy& operator =( const CNcdParentOfTransparentNodeProxy& aObject );
+
+
+private: // data
+
+    TInt iServerChildCount;
+
+    };
+
+
+#endif // NCD_PARENT_OF_TRANSPARENT_NODE_PROXY_H