dcmofw/dcmoserver/inc/dcmoserver.h
changeset 0 b497e44ab2fc
child 24 13d7c31c74e0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dcmofw/dcmoserver/inc/dcmoserver.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,193 @@
+/*
+* 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:  DCMO Server
+*
+*/
+
+#ifndef __DCMO_SERVER_H__
+#define __DCMO_SERVER_H__
+
+// INCLUDES
+
+#include <e32base.h>
+#include "dcmoclientserver.h"
+#include "dcmoconst.h"
+#include "dcmonotifieraob.h"
+
+// CONSTANTS
+const TUid KCRUidDCMOServer={0x2001FE47};
+const TInt KDCMOKeyMaxNumber = 16;
+// FORWARD DECLARATIONS
+// CLASS DECLARATION
+
+/**
+*  CDCMOServer
+*  Description.
+*/
+
+
+class CDCMOServer : public CServer2
+	{
+	friend class CDCMOSession;
+	friend class CDCMONotifierAob;
+
+public:
+	/**
+	 * Structure to hold the plug-in details
+	 */ 
+	struct dcmoInfoList
+	{
+		HBufC* iCategoryName;
+		TInt iUid;
+		TBool iStatus;
+	};
+	/**
+	 * Destructor
+	 */
+	~CDCMOServer();	
+	
+	/**
+	 * Static method which creates the server instance
+	 * @param None
+	 * @return CServer2*
+	 */ 
+	static CServer2*    NewLC( );
+	
+	/**
+	 * Locks the session, so that new session will not be started
+	 * before the previous request completion
+	 * @param None
+	 * @return None
+	 */
+  void LockSession();
+  
+  /**
+	 * UnLocks the session, so that new session can start later.
+	 * @param None
+	 * @return None
+	 */
+  void UnLockSession();  
+    
+	/**
+	 * Stops the session and closes the server
+	 * @param None
+	 * @return None
+	 */
+	void DropSession();
+	
+private:
+	/**
+	 * Default constructor
+	 */
+	CDCMOServer();
+	
+	/**
+	 * second phase constructor
+	 */
+	void ConstructL();
+	
+	/**
+	 * Calls when a New session is getting created
+	 * @param aVersion
+	 * @param aMessage
+	 * @return CSession2*
+	 */
+	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage)  const;
+	
+
+protected:
+    //
+    // Services
+    //   
+  /**
+	 * Get the interger type value
+	 * @param aCategory
+	 * @param aId
+	 * @param aValue
+	 * @return TDCMOStatus 
+	 */ 
+	TDCMOStatus GetIntAttributeL(TDes& aCategory, TDCMONode aId, TInt& aValue);
+	
+	/**
+	 * Get the string type value
+	 * @param aCategory
+	 * @param aId
+	 * @param aStrValue
+	 * @return TDCMOStatus
+	 */
+	TDCMOStatus GetStrAttributeL(TDes& aCategory, TDCMONode aId, TDes& aStrValue);
+	
+	/**
+	 * Set the interger type value
+	 * @param aCategory
+	 * @param aId
+	 * @param aValue
+	 * @return TDCMOStatus
+	 */
+	TDCMOStatus SetIntAttributeL(TDes& aCategory, TDCMONode aId, TInt aValue);
+	
+	/**
+	 * Set the string type value
+	 * @param aCategory
+	 * @param aId
+	 * @param aStrValue
+	 * @return TDCMOStatus
+	 */
+	TDCMOStatus SetStrAttributeL(TDes& aCategory, TDCMONode aId, const TDes& aStrValue);	
+	
+	/**
+	 * Finalize the Service
+	 * @return TDCMOStatus
+	 */
+	void DoFinalizeL();	
+	
+	/**
+	 * Get the list of all plug-in adapters
+	 * @param aGroup
+	 * @param aAdapterList
+	 * @return 
+	 */
+	void SearchAdaptersL(TDes& aGroup, TDes& aAdapterList);	
+	
+	/**
+	 * Set the iStarter value
+	 * @param aValue, ETrue if it is Starter else EFalse
+	 * @return 
+	 */
+	void SetStarter(TBool aValue);	
+
+private:
+	
+	/**
+	 * Get the uid of plug-in adapter
+	 * @param aCategory
+	 * @return the uid
+	 */
+	TUid GetAdapterUidL(const TDesC& aCategory);
+	
+	/**
+	 * Finds whether the plug-in adapter is a generic category
+	 * @param aCategory
+	 * @return the integer
+	 */
+		TInt GetLocalCategoryL(const TDesC& aCategory);	
+	
+private:
+	RArray<dcmoInfoList> idcmoArray;
+	static TInt iSessionCount;
+	TBool iStarter;	
+	CDCMONotifierAob* iNotifier;
+	};
+	
+#endif //__DCMO_SERVER_H__