contentctrl_plat/ds_agenda_handler_plugin_api/inc/nsmlagendaadapterhandler.h
changeset 1 95fdac6ccb5c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentctrl_plat/ds_agenda_handler_plugin_api/inc/nsmlagendaadapterhandler.h	Thu Dec 17 08:39:39 2009 +0200
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2009 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:  
+*
+*/
+
+#ifndef C_NSMLAGENDA_ADAPTERHANDLERPLUGIN_H
+#define C_NSMLAGENDA_ADAPTERHANDLERPLUGIN_H
+
+// SYSTEM INCLUDES
+#include <e32base.h>
+#include <s32mem.h>
+#include <ecom.h>
+#include <SmlDataFormat.h>
+#include <nsmlchangefinder.h>
+#include <calcalendarinfo.h>
+#include <e32cmn.h>
+
+// Constants
+const TUid KAgendaAdapterHandlerInterfaceUid = { 0x20029F14 };
+
+/**
+* Interface definition for ECoM plug-in adapters
+*/
+class CNSmlAgendaAdapterHandler: public CBase
+    {
+	public:
+	    /**
+        * Ecom interface static factory method implementation.
+        * @param aImpUid Ecom's implementation uid
+        * @return A pointer to the created instance of CNSmlAgendaAdapterHandler
+        */
+		static inline CNSmlAgendaAdapterHandler* NewL(TUid aImpUid);
+
+		/**
+		* Destructor
+		*/
+		virtual ~CNSmlAgendaAdapterHandler();
+
+	public:
+	    /**
+        * Determines the Server supported folder properties
+        * 
+        * @param aServerDataStoreFormat Class structure of server device information
+        *         
+        */
+	    virtual void CheckServerSupportForFolder( const CSmlDataStoreFormat& aServerDataStoreFormat ) = 0;
+	    
+	    /**
+        * Retrieve the folder from the Organizer db
+        * 
+        * @param aUid variable specifing which Folder to be fetched
+        * @param aStream on return will have the Folder details
+        *         
+        */
+	    virtual void FetchFolderL( const TSmlDbItemUid aUid, RBufWriteStream& aStream ) = 0;
+	    
+	    /**
+        * Determine the list of folders in the Organizer db owned by the calling application
+        * 
+        * @param aFolderUidArray array on return will have UID's of owned folders
+        *         
+        */
+	    virtual void SynchronizableCalendarIdsL( CArrayFixFlat<TUint>* aFolderUidArray ) = 0;
+	    
+	    /**
+        * Create a folder on to Organizer db
+        * 
+        * @param aStream containing the folder details to be created with
+        * @return TCalLocalUid of the newly created folder
+        *         
+        */
+	    virtual TCalLocalUid CreateFolderL( RBufReadStream& aStream ) = 0;
+	    
+	    /**
+        * Replace the existing folder with updated info
+        * 
+        * @param aUid determines folder to act upon
+        * @param aStream containing the folder information to be updated
+        * @param aSyncStatus updated folders current syncstatus
+        *         
+        */
+	    virtual void ReplaceFolderL( const TCalLocalUid& aUid, RBufReadStream& aStream, TBool& aSyncStatus ) = 0;
+	    
+	    /**
+        * Retrieves the foldername 
+        * 
+        * @param aUid of the folder whose name to be determined
+        * @return HBufC* name of the folder
+        *         
+        */
+	    virtual HBufC* FolderNameL( TSmlDbItemUid aUid ) = 0;
+	    
+	    /**
+        * Retrieve the calendar sync capability supported by the device
+        * 
+        * @param aStringPool 
+        * @return CSmlDataStoreFormat* Class structure of supported capabilities
+        *         
+        */	 
+	    virtual CSmlDataStoreFormat* StoreFormatL( RStringPool& aStringPool ) = 0;
+	    
+	    /**
+        * Create a snap shot item
+        * 
+        * @param aUid of folder whose snapshot to be created
+        * @retrun TNSmlSnapshotItem class 
+        *         
+        */
+	    virtual TNSmlSnapshotItem CreateFolderSnapShotItemL( const TCalLocalUid& aUid ) = 0;
+	    
+	    /**
+        * Determine the folder owner
+        * 
+        * @return TInt uid of the owner application
+        *         
+        */	    
+	    virtual TInt DeviceSyncOwner() = 0;
+	    
+	    /**
+        * Determines the sync status of the folder
+        * 
+        * @param aUid determine the folder whose sync status to be retrieved
+        * @return TBool sync status
+        *         
+        */
+	    virtual TBool FolderSyncStatusL( TSmlDbItemUid aUid ) = 0;
+	    
+	    /**
+        * Determines the sync status of the folder
+        * 
+        * @param aFolderName determine the folder whose sync status to be retrieved
+        * @return TBool sync status
+        *         
+        */	    
+	    virtual TBool FolderSyncStatusL( HBufC* aFolderName ) = 0; 
+	    
+	public:
+	    /**
+        * Variable to hold the Plugin's Opaque Data
+        */
+	    HBufC8* iOpaqueData;
+   
+	private:    
+		/**
+		* Used internally to create ECOM implementation
+	    */
+  	   	TUid iDtor_ID_Key;  	   
+    
+    };
+
+#include "nsmlagendaadapterhandler.inl"
+
+#endif		// C_NSMLAGENDA_ADAPTERHANDLERPLUGIN_H
+
+// End of File
+