--- /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
+