--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pressrv_plat/xdm_api/inc/XdmDirectory.h Tue Feb 02 01:05:17 2010 +0200
@@ -0,0 +1,127 @@
+/*
+* 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 "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: XDM directory
+*
+*/
+
+
+
+
+#ifndef __XDMDIRECTORY__
+#define __XDMDIRECTORY__
+
+#include <e32base.h>
+#include <XdmDocument.h>
+
+enum TDirUpdatePhase
+ {
+ EDirPhaseIdle = 0,
+ EUpdateDocumentList,
+ ERefreshDocuments
+ };
+
+//FORWARD DECLARATION
+class CXdmEngine;
+class CXdmDocumentNode;
+class CXdmOperationFactory;
+
+class CXdmDirectory : public CActive
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C ~CXdmDirectory();
+
+ public: //The abstract directory API
+
+ /**
+ * Return the number of documents in this directory
+ * @return TInt Number of documents
+ */
+ virtual TInt DocumentCount() = 0;
+
+ /**
+ * Return the name of the specified document
+ * @param TInt Index of the desired document
+ * @return TPtrC Name of the specified document
+ */
+ virtual TPtrC Document( TInt aIndex ) const = 0;
+
+ /**
+ * Returns the path to this directory
+ * @return TPtrC8 The path to the directory this object models
+ */
+ virtual TPtrC DirectoryPath() const = 0;
+
+ /*
+ * Return the type of the specified document
+ * @param TInt Index of the desired document
+ * @return TXdmDocType Type of the document
+ */
+ virtual TXdmDocType DocumentTypeL( TInt aIndex ) const = 0;
+
+ protected:
+
+ /**
+ * By default Symbian OS constructor is private.
+ * @param TDesC& The directory path
+ * @return void
+ */
+ IMPORT_C void BaseConstructL( const TDesC& aDirectoryPath );
+
+ /**
+ * C++ constructor is protected.
+ */
+ IMPORT_C CXdmDirectory( CXdmEngine& aXdmEngine );
+
+ private: //Methods which need to be accessible from the CXdmEngine
+ //but NOT from the client application => friend class
+
+ /**
+ * Start updating the contents of this directory model
+ * @param TRequestStatus& Request status of the client
+ * @param TDirUpdatePhase Phase of the update
+ * @return void
+ */
+ virtual void StartUpdateL() = 0;
+
+ /**
+ * Cancel a directory update
+ * @return void
+ */
+ virtual void CancelUpdate() = 0;
+
+ /**
+ * Save the client's request status and update status
+ * @param TDirUpdatePhase The update phase
+ * @param TRequestStatus The client's request status
+ * @return void
+ */
+ virtual void SaveRequestData( TDirUpdatePhase aUpdatePhase,
+ TRequestStatus& aClientStatus ) = 0;
+
+ protected:
+
+ TInt iFileCount;
+ HBufC* iDirectoryPath;
+ CXdmEngine& iXdmEngine;
+ TDirUpdatePhase iUpdatePhase;
+ friend class CXdmEngine;
+ };
+
+#endif //__XDMDIRECTORY__
+
+// End of File