diff -r 8e7494275d3a -r 4f0867e42d62 contentctrl_plat/ds_agenda_handler_plugin_api/inc/nsmlagendaadapterhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentctrl_plat/ds_agenda_handler_plugin_api/inc/nsmlagendaadapterhandler.h Wed Sep 01 12:30:02 2010 +0100 @@ -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 +#include +#include +#include +#include +#include +#include + +// 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* 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 +