--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreensrv_plat/sapi_menucontent/mcsservice/inc/mcsservice.h Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,219 @@
+/*
+* Copyright (c) 2008 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 __MCSSERVICE_H
+#define __MCSSERVICE_H
+
+#include <e32base.h>
+#include <liwcommon.h>
+#include <liwserviceifbase.h>
+#include <liwbufferextension.h>
+#include "mcsmenusapi.h"
+#include "mcsmenuitem.h"
+#include "mcsoperationmanager.h"
+
+class CMCSReqNotification;
+/**
+ * MCS callback interface, its pure interface class, application need to
+ * Write there own callback derriving from this class.
+ */
+
+ class MMCSCallback
+ {
+ /**
+ * Handles notifications caused by an asynchronous calls.
+ *
+ * @return Success/Error code for the callback.
+ */
+ public:
+
+ virtual void NotifyResultL(TInt aErrCode, TAny* aResult = NULL ) = 0;
+ };
+
+/**
+ * MCS Service class.
+*/
+class CMCSService : public CBase
+ {
+ public:
+
+ /**
+ * Two Phase Constructor
+ */
+ IMPORT_C static CMCSService* NewL(const TDesC& aContent);
+
+ /**
+ * Destructor
+ */
+ virtual ~CMCSService();
+
+ private:
+
+ /**
+ * Constructor
+ */
+ CMCSService();
+
+ /**
+ * Constructor
+ */
+ void ConstructL(const TDesC& aContent);
+
+ /**
+ * @param aInputMap map containing attributes to add or modify
+ * @param aMenuitem menuitem object
+ * @param aFlag flag enum
+ * @return void
+ */
+ void SetFlagInMenuitemL( CLiwMap& aInputMap,
+ CMenuItem& aMenuitem, TMenuItem::TFlags aFlag);
+
+
+
+ public:
+
+ /**
+ * Add / Changes an item and its attribute.
+ * @param aCallBack CallBack for asynchronous requests
+ * @param aType type of item
+ * @param aParentId parent id of the item
+ * @param aBeforeId item id after which the new item will be added
+ * @param aInputMap attributes to add or modify
+ * @return void
+ */
+ IMPORT_C void UpdateItemL( MMCSCallback* aCallBack, TDesC& aType,
+ TInt aId, TInt aParentId, TInt aBeforeId, CLiwMap& aInputMap );
+
+ /**
+ * Gets the list of items from xml
+ * @param aInParamList list containing input parameters for getlist
+ * @param aCallBack CallBack for asynchronous requests
+ * @return void
+ */
+ IMPORT_C void GetListL( const CLiwGenericParamList& aInParamList,
+ MMCSCallback* aCallBack );
+
+
+ /**
+ * Gets the Uid of running applications
+ * @param aCallback CallBack for asynchronous requests
+ * @return void
+ */
+ IMPORT_C void GetRunningAppsL( MMCSCallback* aCallback );
+
+ /**
+ * Execute a action (open/remove)
+ * @param aCallback CallBack for asynchronous requests
+ * @param aItemId item id
+ * @param aAction action to execute
+ * @return void
+ */
+ IMPORT_C void ExecuteActionL( MMCSCallback* aCallback,
+ TInt aItemId, TDesC8& aAction );
+
+ /**
+ * Start notifying the changes
+ * @param aCallback CallBack for asynchronous requests, Ownership is passed
+ * @param aFolderId folder id to observe the events notification.
+ * @param aEvents events to observe
+ * @return void
+ */
+ IMPORT_C void RegisterObserverL( TInt aFolderId,TInt aEvents,MMCSCallback* aCallBack );
+
+ /**
+ * Stop notifying the changes
+ */
+ IMPORT_C void UnRegisterObserverL();
+
+ /**
+ * Delete an Item
+ * @param aCallback CallBack for asynchronous requests, Ownership is passed
+ * @param aItemId item id to delete
+ * @return void
+ */
+ IMPORT_C void DeleteL( MMCSCallback* aCallBack, TInt aItemId);
+
+ /**
+ * Set Get running applications output to output parameter
+ * @param aOutputArray GetList array
+ * @param aOutParamList Output parammeter
+ * @return void
+ */
+ IMPORT_C void SetRunningAppsOutputL( RArray<TUid>& aOutputArray,
+ CLiwGenericParamList& aOutParamList );
+
+ /**
+ * Organize
+ * @param aCallback CallBack for asynchronous requests, Ownership is passed
+ * @return void
+ */
+ IMPORT_C void OrganizeL(MMCSCallback* aCallBack,
+ TInt aItemId, TInt aBeforeItemId);
+
+ /**
+ * Organize
+ * @param aCallback CallBack for asynchronous requests, Ownership is passed
+ * @return void
+ */
+ IMPORT_C void OrganizeL(MMCSCallback* aCallBack,
+ const RArray<TInt>& aList, TInt aFolderId, TInt aBeforeItemId);
+
+ /**
+ * Set the events and folder to notify
+ * @param aFolderId folder id which modified
+ * @param aEvent events occured
+ * @param aOutParamList Output parammeter
+ * @return void
+ */
+ IMPORT_C void SetReqNotificationOutputL( TInt aFolderId,
+ TInt aEvent, CLiwGenericParamList& aOutParamList );
+
+ private:
+
+ /** Menu */
+ RMenuSapi iMCS;
+ /** Result Type*/
+ TBool iFlatResult;
+ /** Notification events registered status */
+ TBool iIsRegistered;
+ /** Event notifier */
+ CMCSReqNotification *iReqNotifier;
+ /* own */
+ RMcsOperationManager iOperationManager;
+ /**
+ * CLiwGenericParamList class pointer
+ * Not Own.
+ */
+ CLiwGenericParamList* iAttributes;
+
+ /**
+ * CDesC16ArrayFlat class pointer
+ * Own.
+ */
+ CDesC16Array* iIgnoredAttributes;
+
+ /**
+ * CDesC16ArrayFlat class pointer
+ * Own.
+ */
+ CDesC16Array* iRequiredAttributes;
+
+ };
+
+
+#endif /* __MCSSERVICE_H */