testexecmgmt/ucc/Source/Uccs.v2/Core/UCCS_CServMgr.h
changeset 0 3da2a79470a7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testexecmgmt/ucc/Source/Uccs.v2/Core/UCCS_CServMgr.h	Mon Mar 08 15:04:18 2010 +0800
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2005-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:  
+* Filename: UCCSServMgr.h
+*
+*/
+
+
+
+#ifndef __UCCSSERVICEMANAGER_H__
+#define __UCCSSERVICEMANAGER_H__
+
+/***********************************************************************************
+ *
+ * Local Includes
+ *
+ **********************************************************************************/
+#include "UCCS_CDataRecord.h"
+#include "UCCS_Interfaces.h"
+#include "UCCS_ServiceValues.h"
+
+/***********************************************************************************
+ *
+ * Definition
+ *
+ **********************************************************************************/
+#define MAXSERVICES			128
+#define MAXHOSTNAME			256
+#define MAXINIPATH			1024
+#define MAXSERVICENAME		256
+
+/***********************************************************************************
+ *
+ * Types
+ *
+ **********************************************************************************/
+typedef struct 
+{
+	TRpcServiceID	iServiceID;
+	char			iHostname[MAXHOSTNAME];
+} TServiceTableEntry;
+
+typedef struct 
+{
+	int		iServiceID;
+	char	iServiceName[MAXSERVICENAME];
+	char	iIniFile[MAXINIPATH];
+	char	iHost[MAXHOSTNAME];
+} TGenericService;
+
+
+//----------------------------------------------------------------------------------
+//
+// Class used to communicate with the stub interfaces.
+// Class uses same methods as IService but methods here also have a service ID to use.
+//
+class CServiceManager
+{
+	public:
+
+		//constructor/destructor
+		CServiceManager( IOutput *aOutput );
+		~CServiceManager();
+		int ShutdownAll();
+		
+		// duplicated interface method - the only one to be seen from outside at this level
+		int IssueCommand(CDataRecord* aDataRecord, CDataRecord** aReturnedDataRecord);
+
+		// reset a service
+		int ResetService( int aServiceID, char *aHostname );
+		int ResetAllServices();
+
+	private:
+
+		// get the local service index
+		int GetLocalServiceIndex( int aServiceID, char *aServiceHost );
+
+		// duplicated interface methods used to dumultiplex for the higher layers
+		int LocalStartService( int aServiceID, char *aServiceHost );
+		int LocalStopService( int aLocalServiceIndex );
+		
+		//defines interface pointers to the service handlers
+		IService *iServiceList[MAXSERVICES];	
+		TServiceTableEntry iServiceDescTable[MAXSERVICES];
+		IOutput *iOutput;
+
+		// GenericStub Service id's
+		int iNumGenericServices;
+		TGenericService iGenericServices[MAXSERVICES];
+};
+
+//----------------------------------------------------------------------------------
+#endif __UCCSSERVICEMANAGER_H__